プロジェクトBに、プロジェクトAによって作成されてリモートリポジトリにデプロイされたZIPをプルダウン(および解凍)させようとしています。
maven-assembly-plugin
ZIPは、パッケージタイプを使用して作成および添付されpom
ます。
<artifactId>project-a</artifactId>
<name>ZIP</name>
<description>Used by Project B</description>
<packaging>pom</packaging>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>distribution-package</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/scripts.xml</descriptor>
</descriptors>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
:を使用してプロジェクトBのpomからプルダウンしようとしていmaven-dependency-plugin
ます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-scripts</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/staging</outputDirectory>
<stripVersion>true</stripVersion>
<artifactItems>
<artifactItem>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<overWrite>true</overWrite>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
失敗する:[ERROR] Failed to execute goal on project ...: Could not resolve dependencies for project group:artifact:pom:version: Could not find artifact group:project-a:zip:version in nexus (http://...:8081/nexus/content/groups/public) -> [Help 1]
これは、プロジェクトAのパッケージを指定したためであり、指定pom
しなかったためだと思いますが、プロジェクトAをパッケージタイプとしてzip
指定できないため、次のようになります。zip
[ERROR] Unknown packaging: zip @ line 13, column 13
私はここで何か間違ったことをしていますか、それともこれは単に不可能ですか?アーティファクトにバンドルして、他の複数のプロジェクトがそれらをダウンロードして使用できるように解凍したいファイルがたくさんあります。さまざまな提案を受け入れる...
また、組み立てられたzipが実際にネクサスにあることを確認しました。
回答で更新
他の誰かの利益のために、私が見逃していたのは、依存関係のがアセンブリのの<classifier>
と一致しなければならないということです。次のファイルのどこが指定されているかに<id>
注意してください。thisistheattachedartifactsclassifier
scripts.xml(プロジェクトA):
<assembly>
<id>thisistheattachedartifactsclassifier</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>src/main/resources</directory>
...
</fileSet>
</fileSets>
</assembly>
pom.xml(プロジェクトB):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-scripts</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/staging</outputDirectory>
<stripVersion>true</stripVersion>
<artifactItems>
<artifactItem>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<classifier>thisistheattachedartifactsclassifier</classifier>
<overWrite>true</overWrite>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>