【问题标题】:Ant-Based Versioning基于 Ant 的版本控制
【发布时间】:2011-09-07 00:04:57
【问题描述】:

我想知道“基于 Ant 的版本控制”是否可能,或者类似的东西。这就是我的意思:

JAR 的常见命名约定类似于 MyJar-1.0.14.jar,其中 MyJar 是 JAR 文件的主名称,-1.0.14 代表版本号。

在我的 Ant 构建脚本中,我将有一个任务 dist,它看起来 类似于

<target name="dist" depends="compile">
    <jar destfile="${dist.dir}/MyJar.jar">
        <!-- All the filesets to JAR up -->
    </jar>
</target>

我的问题是:Ant 是否支持 anything 可以根据某些外部方案使用正确的版本号自动更新 JAR 名称? Ant 目标实际上可能看起来像这样的东西:

<target name="dist" depends="compile">
    <jar destfile="${dist.dir}/MyJar-[revision].jar">
        <!-- All the filesets to JAR up -->
    </jar>
</target>

[revision] 是根据某些内部定义的修订方案(可能在其他外部文件中定义)的构建/修订号?

如果是这样,那么如果我要了解我的情况,那么每次我想 JAR-up 一个新版本的发行版时,我都会被困在修改 build.xml 文件中吗?是的?没有?

【问题讨论】:

    标签: java ant build


    【解决方案1】:

    有一个 ant 任务会增加内部版本号。它称为 buildNumber

    读取、增加内部版本号并将其写入默认文件 build.number。

    <buildnumber file="mybuild.number"/>`
    

    buildNumber.html

    我们的蚂蚁处理过程是这样的

    1 - 版本控制更新构建文件

    2 - 增加内部版本号

    3 - 检查/提交内部版本号

    【讨论】:

      【解决方案2】:

      不知道任何 ant 任务会自动增加数字,但您应该将修订定义为您将导入的 build.properties 文件中的属性。属性文件将包含一个默认值

      revision=1.0
      

      在 ant build.xml 文件中

      <property file="build.properties"/>
      <target>
          <jar destfile="${dist.dir}/MyJar-${revision}.jar>
      

      要在构建时更新属性,您只需调用带有 -D 值集的 ant 目标

      ant -Drevision=2.0 dist
      

      这避免了在发布时更新任何文件的需要。

      【讨论】:

      • 我同意这是实现结果的最简单方法,但出现了一个相关问题:用户对增量构建的期望是什么?即,尚未完成清洁的地方?我们应该尝试删除旧版本的 jar 文件还是应该只累积它们?
      【解决方案3】:

      您可以添加一个属性并像这样使用它:

      <jar destfile="${dist.dir}/MyJar-${revision}.jar">
      

      【讨论】:

        猜你喜欢
        • 2022-08-12
        • 2012-11-01
        • 2015-09-15
        • 2017-06-25
        • 2016-07-17
        • 1970-01-01
        • 1970-01-01
        • 2013-07-27
        • 1970-01-01
        相关资源
        最近更新 更多