2011-06-17 8 views
12

からplatform.jarをダウンロードするにはMavenを得るか、私は、次のPOMエントリを持っているどのように私はJNAプロジェクト

<dependency> 
    <groupId>net.java.dev.jna</groupId> 
    <artifactId>jna</artifactId> 
    <version>3.3.0</version> 
</dependency> 

私は私のプロジェクトをビルドするには、以下のファイルダウンロード:

  • jna-を3.3.0.jar
  • JNA-3.3.0.jar.sha1
  • JNA-3.3.0.pom
  • JNA-3.3.0.jar.sha1

リポジトリhttp://download.java.net/maven/2/net/java/dev/jna/jna/3.3.0/にアクセスすると、他にも多数のファイルがあることがわかります。 Mavenが他のファイルをダウンロードしないのはなぜですか?

あなたが

<plugins> 
    <!-- fake out maven and install the binary artifact --> 
    <plugin> 
    <groupId>org.jvnet.maven-antrun-extended-plugin</groupId> 
    <artifactId>maven-antrun-extended-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     <configuration> 
      <tasks> 
      <!--<ant dir="." target="dist" />--> 
      <attachArtifact file="dist/jna.jar" /> 
      <attachArtifact file="dist/platform.jar" classifier="platform" type="jar" /> 
      <attachArtifact file="dist/src-mvn.zip" classifier="sources" type="jar"/> 
      </tasks> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

を参照してくださいJNA-3.3.0.pomを開いた場合、私は問題がポンポンにコメントして行う「アウト偽物Mavenとバイナリアーティファクトをインストールする」ために何かを持っている疑いがあります。

答えて

17

クラシファイアを追加して既存のJNA依存関係と一緒にプロジェクトに2番目の依存関係を追加すると、ビルドにアーティファクトを追加する必要があります。

<dependency> 
    <groupId>net.java.dev.jna</groupId> 
    <artifactId>jna</artifactId> 
    <version>3.3.0</version> 
    <classifier>platform</classifier> 
</dependency> 

あなたは今、同じプロジェクトから2つのアーティファクトを持っているとして、それを更新することの両方を更新するように、プロジェクトレベルのプロパティにversion要素を抽出することが賢明でしょう。

<properties> 
    <jna.version>3.3.0</jna.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>net.java.dev.jna</groupId> 
     <artifactId>jna</artifactId> 
     <version>${jna.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>net.java.dev.jna</groupId> 
     <artifactId>jna</artifactId> 
     <version>${jna.version}</version> 
     <classifier>platform</classifier> 
    </dependency> 
</dependencies> 
+1

新しいバージョンの場合、これはもはや真ではありません.2番目のアーティファクトは、クラシファイアなしで "jna-platform"と呼ばれるようになりました。 – David

0

私はファイルをダウンロードプロジェクトルートのlibフォルダに配置します。私のためにうまく動作する継ぎ目。新しいバージョンをリリースする場合は、マニュアルを更新する必要があります。

<properties> 
    <jna.version>3.4.0</jna.version> 
</properties> 

<dependencies> 
    <dependency> 
    <groupId>net.java.dev.jna</groupId> 
    <artifactId>jna</artifactId> 
    <version>${jna.version}</version> 
    <scope>system</scope> 
    <systemPath>${project.basedir}/lib/jna.jar</systemPath> 
</dependency> 
<dependency> 
    <groupId>net.java.dev.jna</groupId> 
    <artifactId>jna</artifactId> 
    <version>${jna.version}</version> 
    <scope>system</scope> 
    <systemPath>${project.basedir}/lib/platform.jar</systemPath> 
    <classifier>platform</classifier> 
</dependency> 
</dependencies> 
6

私は本当に@steve_barham's answerclassifier使用法を理解していませんでした。

私はgithubの中JNAのプロジェクトを検索し、ファイルがpom-jna-platform.xml呼ばれた、以下の案件の詳細が含まれている:

<groupId>net.java.dev.jna</groupId> 
<artifactId>jna-platform</artifactId> 
<version>4.0.0-SNAPSHOT</version> 
<packaging>jar</packaging> 

は、だから、僕はJNAとJNAプラットフォームのjarファイルの両方をダウンロードするために、次の使用:

<properties> 
    <jna.version>4.0.0</jna.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>net.java.dev.jna</groupId> 
     <artifactId>jna</artifactId> 
     <version>${jna.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>net.java.dev.jna</groupId> 
     <artifactId>jna-platform</artifactId> 
     <version>${jna.version}</version> 
    </dependency> 
</dependencies> 
+4

+1 artifactId 'platform'がバージョン4.0.0の' jna-platform'に変更されました。人々が気づいているだけのもの。 –

関連する問題