我可以使用Ant来记录发布历史吗?

时间:2012-01-13 18:01:35

标签: java ant build

现在我有一个 version.properties 文件, ant 可以在我发布时自动更新其内容(一个java应用程序)。该版本文件的内容如下:

buildDate=01-03-2012 165937
buildNum=1
buildMinor=0
buildMajor=0

现在我想将发布历史记录保存到一个文件中(可能是一个新文件,说 history.properties ),以防我想知道何时发布了哪个版本。

为了做到这一点,我必须让 ant 自动为我做以下事情:

  1. version.properties 文件中读取现有信息,并将它们合并为一个字符串,例如这样的字符串: 0.0.1 01-03 -2012 165937 ;
  2. 将新字符串插入或附加 history.properties 文件中;
  3. 任何人都可以告诉我蚂蚁能否做到1以上2以上?如果有,怎么样?

    或者与我分享您的更好解决方案。

    感谢,

3 个答案:

答案 0 :(得分:1)

使用此目标在每次构建结束时存储版本日志:

<target name="save_version_history">
  <property file="version.properties" />
  <echo file="history.log" append="true" >${buildMajor}.${buildMinor}.${buildNum} ${buildDate}
</echo>
</target>

答案 1 :(得分:0)

我现在找到了解决方案。我将history.properties的格式更改为

version=date

例如:

0.0.1 = 01-03-2012 165937

然后我使用以下蚂蚁目标:

<target name="history" depends="init" >
        <loadproperties srcFile="${version.file}"/>
        <propertyfile
            file="${history.file}" comment="Build history info">
            <entry key="${buildMajor}.${buildMinor}.${buildNum}" type="string" value="${buildDate}"/>
        </propertyfile>
    </target>

因为每次输入键都不同,所以 ant 追加到history.properties文件的末尾。

答案 2 :(得分:0)

对于替代解决方案,为什么不试试JReleaseInfo ANT task

它的工作原理是生成包含指定版本信息的Java类文件。可以在运行时通过代码的其他部分查询此类。甚至还有一个支持图形运行时查看器的选项。