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