你有没有考虑过用你的ivy文件的dynamic revision numbers?
<dependency org="myorg" name="myname1" revision="latest.release"/>
<dependency org="myorg" name="myname2" revision="latest.integration"/>
常春藤会巧妙地解决发布到常青藤存储库的ivy.xml文件中的这些依赖关系。
使用ivy产生buildnumber
的buildnumber是一个非常聪明的任务,生成一个序列的下一个数字,根据您已经发布的版本。
控制生成顺序
另一个常春藤多模块技巧是使用buildlist任务要控制你的模块的构建顺序。它基于每个子模块的常青藤文件中声明的相互依赖性。这确保latest.lease和latest.integration版本将找到预期的修订。
解决动态修订
我已经说过了,这是正常自动完成的,但有时产生一个Maven POM文件时你需要看到实际使用的真实版本,例如(发布到时Maven回购)。
下面的示例使用常春藤提供和makepom任务创建一个Maven POM具有扩展的动态修正。
<target name="generate-pom">
<ivy:deliver deliverpattern="${build.dir}/ivy.xml" pubrevision="${publish.revision}" status="${publish.status}"/>
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/${ivy.module}.pom"/>
</target>
<target name="publish" depends="build,generate-pom">
<ivy:publish resolver="${publish.resolver}" pubrevision="${publish.revision}" overwrite="true" publishivy="false" >
<artifacts pattern="${build.dir}/[artifact](-[classifier]).[ext]"/>
</ivy:publish>
</target>
对于我来说,如果您询问自己的修订版编号或您所指的某个依赖关系,我不清楚。请记住,您始终可以在常春藤描述符中使用ant属性,因此您可以使用它来指定您自己的修订版。 –
谢谢Joeri。我指的是依赖文件的版本。 –