java - 使用 ant 脚本为我的所有项目自动增加 ivy 修订版

标签 java ant ivy

我拥有 50 个其他项目(由其他人拥有)中的 20 个 Ivy 项目,我在我的项目中使用了他们二进制文件的某些版本。

问题是在发布期间,我必须手动增加我的 20 个 ivy 文件的版本, checkin 文件并构建二进制文件。这很耗时。尽管 eclipse 查找和替换有帮助。

使用 ant 实现自动化的步骤:

1) 单独检查 ivy 文件。 2)使用脚本/逻辑仅更改我的模块/我的模块相互依赖的版本。 3) 检查文件。 4) 标记要发布的分支。

停留在第 2 步休息都相对容易。

尝试过 xml 任务,但由于有时我们不知道确切的索引,因此在搜索时面临挑战。

感谢您的帮助。

最佳答案

您是否考虑过使用 dynamic revision numbers在你的 Ivy 文件里?

<dependency org="myorg" name="myname1" revision="latest.release"/>
<dependency org="myorg" name="myname2" revision="latest.integration"/>

Ivy 会在发布到 ivy 存储库的 ivy.xml 文件中巧妙地解决这些依赖关系。

使用ivy生成buildnumber

buildnumber是一项非常聪明的任务,它会根据您已经发布的版本生成序列中的下一个数字。

控制构建顺序

ivy 的另一个多模块技巧是使用 buildlist任务来控制构建模块的顺序。它基于每个子模块的 ivy 文件中声明的相互依赖关系工作。这确保了 latest.releaselatest.integration 修订将找到预期的修订。

解析动态修订

正如我所说,这通常是自动完成的,但有时您需要实际查看使用的真实版本,例如在生成 Maven POM 文件时(发布到 Maven 存储库时)。

以下示例使用 ivy deliverma​​kepom 任务创建一个扩展了动态修订的 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>

关于java - 使用 ant 脚本为我的所有项目自动增加 ivy 修订版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384024/

相关文章:

JavaFX - 以编程方式滚动 ScrollPane 的约束

java - 无法从 START_OBJECT token 中反序列化 java.lang.String 的实例

tomcat - 将 context.xml 部署到 webapps/[webappname]/META-INF

java.lang.NoSuchMethodError : org. apache.log4j.Logger 错误

java - 以编程方式检索 Maven 依赖关系图

java.time.Period ,除以周期会给出错误的结果

java - 显示链表的第一个节点

java - 使用ant发布android包时编译错误

java - 将 Codename One 项目更新到 JDK 8 导致编译错误

java - 什么是 Ivy ?它与 Ant 有什么关系?