web-dev-qa-db-ja.com

mavenアセンブリは、最終的なZip / tarに現在のプロジェクトjarを含めます

私はmavenアセンブリプラグインを使用して.tarファイルを生成し、他のいくつかのファイル、依存jarを含みます。すべてのファイルは、構成Assembly.xml内の指定されたフォルダーに正しくコピーされています。

元のプロジェクトjarも最終的なtarファイルに含めたいのですが、現在は表示されません。

Assembly:singleゴールを発行すると、次のメッセージが表示されます。

[警告]プロジェクトアーティファクトを含めることはできません:com.my.newpkg.project1:jar:0.0.3.0;関連するファイルやディレクトリはありません。

SOを読んだ後、次の構成をpom.xmlに追加するとjarが追加されるはずですが、期待した結果が得られません。

pom.xmlの設定

<plugin>
   <groupId>org.Apache.maven.plugins</groupId>
   <artifactId>maven-jar-plugin</artifactId>
   <version>2.4</version>
   <configuration>
       <archive>
           <manifest>
               <mainClass>com.my.newpkg.project1.MainClass</mainClass>
               <addClasspath>true</addClasspath>
               <classpathPrefix>lib/</classpathPrefix>
           </manifest>
       </archive>
   </configuration>
</plugin>

assembly.xmlのスニペット

<formats>
    <format>dir</format>
    <format>tar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
    <dependencySet>
        <outputDirectory>lib</outputDirectory>
        <excludes>
            <exclude>junit:junit</exclude>
        </excludes>
        <fileMode>0755</fileMode>
    </dependencySet>
</dependencySets>

それで、設定はまだ正しくありませんか?またはここで何か不足していますか?

現在のプロジェクトjarを最終的なtarに追加するにはどうすればよいですか

29
mtk

<dependencySet>では、<useProjectArtifact>false</useProjectArtifact>と言って現在のプロジェクトjarを除外できますが、デフォルトではtrueであるため、機能するはずです。

警告から、最初にmvn packageを実行するのを忘れたため、ターゲットディレクトリからjarを使用できません。

または、1つのコマンドでmvn package Assembly:singleを実行します。

または、maven-Assembly-pluginをpomに追加して「パッケージ」フェーズにバインドし、mvn packageで自動的にトリガーされるようにします。

   <plugin>
        <artifactId>maven-Assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>tar-Assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>etc/Assembly.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
49
Geert Pante