Ivy プロジェクトが (アセンブリ プラグインを使用して) Maven プロジェクトに依存している場合、問題が発生します。例えば:
Maven プロジェクト: Maven プロジェクトが 2 つのスナップショット パッケージをデプロイするとします。 . pom.xml を以下に示します。
<modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0.0-SNAPSHOT</version> <... ...> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2.1</version> <configuration> <descriptors> <descriptor>src/main/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.7</version> <configuration> <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <version>${project.version}</version> <packaging>zip</packaging> <file>my-app-1.01-myzip.zip</file> </configuration> </plugin> </plugins> </build> </project>
アイビープロジェクト
Ivy プロジェクトは、上記の Maven プロジェクトによって公開された 2 つのアーティファクトに依存しています。ivy.xml を以下に示します。
<configurations> <conf name="get-maven" /> </configurations> <dependencies> <dependency org="com.mycompany.app" name="my-app" rev="1.0.0-SNAPSHOT" changing="true" conf="get-maven->default"> <artifact name="my-app" ext="jar" type="jar"></artifact> <artifact name="my-app" ext="zip" type="zip" m:classifier="myzip"></artifact> </dependency> </dependencies>
問題: Maven プロジェクトが新しいスナップショットを Artifacory サーバーにデプロイするたびに、ivy プロジェクトは artifacory サーバーから最新の my-app-xxx.jar を取得できますが、最新の my-app-xxx-myzip を取得できません。 zip (ivy は zip が更新されたことを認識できず、ローカル キャッシュから zip を取得するだけです)。私がしなければならないことは、ローカル キャッシュを削除し、ivy プロジェクトを再度実行することです。
いくつかの調査を行ったところ、ivy タスク「convertpom」が app-xxx-myzip.zip を pom から ivy に変換しなかったことがわかりました。変換されたファイルには 1 つの成果物 (my-app-xxx.jar) しか見つかりませんでした。 ivy.xml。これが根本的な原因かどうかはわかりません。
誰でもこれについて助けることができますか?ivy プロジェクトの両方のアーティファクトの最後のスナップショットを取得するにはどうすればよいですか?
よろしく、アルベン