我使用jenkins执行一个ant xml文件。我必须在开战前更新versionbuild.txt文件信息。我的主要任务是初始化、清理、准备、编译、战争在制造战争之前,我想访问一些参数,如date_of_build, build_number, jdk_compiler, compiler_platform, build_person。在名为versionbuild.txt的文本文件中更新这些文件并归档到war.
我正在我的一个构建脚本中做类似的事情。基本上是创建一个属性文件,我把它作为资源放在源文件夹中。下面是代码片段:
<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>
元素,使用相应的系统属性名称作为值,例如:
<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>