當一個Ivy項目依賴Maven項目(使用程序集插件)時,會出現問題。例如:Ivy項目無法獲得最新的Maven快照(使用程序集插件)
Maven項目: 假設Maven項目將部署2快照包:對於〔實施例,一個是我的-APP-1.0.0-20130504.000602-1.jar,另一個是我的-APP- 1.0.0-20130504.001348-1-myzip.zip。 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>
常春藤項目
常春藤項目依賴於由上述行家項目公佈的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項目部署新的快照到artifactory的服務器,常春藤項目可以檢索最新的MY-APP- xxx.jar來自artifacory服務器,但它無法檢索到最新的my-app-xxx-myzip.zip(ivy無法知道zip被更新,只是從本地緩存中檢索zip)。 我必須做的是刪除本地緩存,並再次運行ivy項目。
我做了一些調查,發現常春藤任務「convertpom」沒有將app-xxx-myzip.zip從pom轉換爲ivy,並且只有1件神器(my-app-xxx.jar)可以在轉換後的ivy.xml中找到。不知道這是否是根本原因。
任何人都可以幫忙嗎?如何獲取ivy項目中的兩個工件的快照?
問候, 專輯