当Ivy项目依赖maven项目(使用程序集插件)时,会出现问题。例如:
Maven项目: 假设maven项目将部署2个快照包:例如,一个是my-app-1.0.0-20130504.000602-1.jar,另一个是my-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>
常春藤项目
常春藤项目取决于上述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项目将新快照部署到artifactory服务器时,ivy项目都可以从artifacory服务器检索最新的my-app-xxx.jar,但它无法检索最新的my-app-xxx-myzip.zip(常春藤无法知道zip已更新,只是从本地缓存中检索zip)。 我要做的是删除本地缓存,然后再次运行常春藤项目。
我做了一些调查,发现常春藤任务“convertpom”没有将app-xxx-myzip.zip从pom转换为常春藤,只能找到1件神器(my-app-xxx.jar)在转换后的ivy.xml中。不确定这是否是根本原因。
有人可以帮忙吗?如何在常春藤项目中获取两个工件的最新快照?
此致 专辑
答案 0 :(得分:0)
那么为了澄清一下,您是否正在尝试配置常春藤以下拉Maven项目发布的快照依赖项?
在这种情况下,以下答案将有助于解释: