这只是使用BuildNumber或PropertyFile任务来创建构建版本号文件,然后读取文件以获取该编号,还创建构建的时间戳,然后将它们都附加到另一个文件。
下面是如何做到这一点的基本思路。从那开始,你应该能够写出类似这样的东西:
<project default="increment">
<target name="increment">
<tstamp>
<format property="build.time" pattern="yyyy-MM-dd HH:mm:ss" />
</tstamp>
<propertyfile file="build.properties">
<entry key="build.number" type="int" operation="+" default="0" />
</propertyfile>
<property file="build.properties" />
<echo message="Build ${build.number} on ${build.time} " append="true" file="build.history" />
</target>
</project>
这将创建两个文件:build.properties
带有您的内部版本号(始终是最后一个编号,因为它在每个版本上都会被覆盖),build.history
其中包含内部版本号列表和每个版本的时间戳。
编辑:根据评论,如果version.sh
输出修订和日期date_compile.jsp
并在每个构建上覆盖它然后 - 保留历史 - 你只需要加载date_compile.jsp
你的构建并将其内容附加到另一个文件,如下所示:
<target name="compile-java" depends="prepare,compile">
<exec dir="${project.dir}" executable="tools/version.sh" output="${src.web.dir}/date_compile.jsp">
<arg line="" />
</exec>
<loadfile property="revision" srcfile="${src.web.dir}/date_compile.jsp" />
<echo message="${revision}<br> " append="true" file="${src.web.dir}/compile_history.jsp" />
</target>