2011-11-23 18 views
10

私はいくつかのカスタムjarsを使用するmavenプロジェクトを持っています[どのリポジトリにも見つかりません]。それらをMavenビルドとともに追加するには、mavenのattach-artifactゴールを使用しています。私のPOMファイルを以下に示します。Maven:複数のアーティファクトの添付

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.maximus</groupId> 
    <artifactId>adminbuild</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>adminbuild</name> 

    <build> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 
    <outputDirectory>target</outputDirectory> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
      <id>attach-artifacts</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attach-artifact</goal> 
      </goals> 
      <configuration> 
       <artifacts> 
       <artifact> 
        <file>${basedir}/../../resources/dependencies/java/customjar1.jar</file> 
        <type>jar</type> 
       </artifact> 
       <artifact> 
        <file>${basedir}/../../resources/dependencies/java/customjar2.jar</file> 
        <type>jar</type> 
       </artifact> 
       </artifacts> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

これらのjarファイル[customjar1.jar、customjar2.jar]を使用して私のプロジェクトは、[adminbuild】上記ポンポンファイルに自分の依存関係を持っています。

私はmvn clean installコマンドを実行すると、私は次のエラーを取得する:

[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.7:attach-artifact (attach-artifacts) on project adminbuild: The artifact with same type and classifier: jar:null is used more than once. -> [Help 1] 

後は、mvn -versionコマンドの出力です:

Apache Maven 3.0.3 (r1075438; 2011-02-28 23:01:09+0530) 
Maven home: C:\maven 
Java version: 1.6.0_26, vendor: Sun Microsystems Inc. 
Java home: C:\Java\jdk1.6.0_26\jre 
Default locale: en_IN, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" 

私が成果物を添付しています方法があるようです間違っている。同じpomファイルに複数の成果物を添付しないでください。はいの場合はどうしますか。助けてください。

答えて

6

添付ファイルは、通常、Webアプリケーション、ドキュメント、ソースのクラスjarのように、ビルドによって作成された追加ファイルをインストールするために使用されます。

ファイルをMavenリポジトリに追加するには、ファイルを依存関係として利用できるようにするには、install-fileという目標を使用する必要があります。

編集:添付アーティファクトがあなたの主なプロジェクトと同じのgroupIdとたartifactIdによってではなく、異なる分類器で識別されます。あなたの設定では、クラシファイアを指定しなかったので、エラーメッセージが表示されます。

2

これらのカスタムjarを通常の依存関係jarのようにダウンロード/使用できるように、nexusのようなリポジトリマネージャに入れたいとします。

これらのjarファイルがよく知られている場所にあるとすれば、これらのjarファイルを必要とするプロジェクトにsystemスコープで指定できますか?

<project> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>my-group</groupId> 
     <artifactId>customjar1</artifactId> 
     <version>a.b.c</version> 
     <scope>system</scope> 
     <systemPath>${basedir}/../../resources/dependencies/java/customjar1.jar</systemPath> 
    </dependency> 
    </dependencies> 
    ... 
</project> 
関連する問題