如何使用ant和jenkins构建后更新buildversion.txt文件

时间:2014-05-09 04:41:57

标签: ant jenkins

我使用jenkins执行一个ant xml文件。我必须在发动战争前更新versionbuild.txt文件信息。 我的蚂蚁任务是初始化,清理,准备,编译,战争 在战争之前,我想访问一些参数,如date_of_build,build_number,jdk_compiler,compiler_platform,build_person。在名为versionbuild.txt文件的文本文件中更新这些文件并归档为war。

1 个答案:

答案 0 :(得分:0)

我在我的一个构建脚本中做了类似的事情。基本上创建一个属性文件,我将其作为资源放在源文件夹中。这是片段:

<target name="init">
  <!-- Format the build number to a 4 figures integer with leading zeroes if required -->
  <!-- The build number is also incremented by 1                                      -->
  <propertyfile file="${build.number.file}">
    <entry key="build.number" type="int" default="0000" operation="+" pattern="0000" />
  </propertyfile>
  <!-- Read the build number -->
  <property file="${build.number.file}"/>
  <!-- create the build date and time with time zone -->
  <tstamp>
    <format property="readable.now" pattern="yyyy-MM-dd hh:mm z"/>
  </tstamp>
  <!-- Write thebuild and version information to a resource file -->
  <!-- The resource file will be part of the corresponding jar   -->
  <propertyfile file="${node}/src/resources/META-INF/jppf-version.properties">
    <entry key="version.number" type="string" value="${version.number}"/>
    <entry key="build.number" type="string" value="${build.number}"/>
    <entry key="build.date" type="string" value="${readable.now}"/>
  </propertyfile>
</target>

生成的文件如下所示:

#Wed, 30 Apr 2014 07:45:12 +0200
version.number=4.2 alpha
build.number=1352
build.date=2014-04-30 07\:45 CEST

显然,您需要的某些数据不在那里,但您可以轻松地将它们添加为<entry>元素,使用相应的system properties的名称作为值,例如:

<propertyfile file="${path.to}/versionbuild.txt">
  <entry key="build_number" type="string" value="${build.number}"/>
  <entry key="date_of_build" type="string" value="${readable.now}"/>
  <entry key="jdk_compiler" type="string" value="${java.vm.version}"/>
  <entry key="jdk_compiler" type="string" value="${os.name}"/>
  <entry key="build_person" type="string" value="${user.name}"/>
</propertyfile>