如何使用ANT将版本号添加到WAR文件中
问题描述:
我有一个ANT构建文件,我在其中创建WAR文件。在此ANT文件中,我已将版本信息添加到WAR文件名。但是发生的事情是,版本号的主要和次要版本都在同一时间更新。我的意思说的是增量主要和次要应该发生,因为 1.1.0 1.2.0 : : 1.9.0 2.0.0
如何使用ANT将版本号添加到WAR文件中
但正在发生的事情是
1.1.0 2.2.0 : : 9.9.0 10.10.0
我的Ant代码
<target name="war" depends="compile, sethostname, setcurrenttime, setdistdir_withversion">
<echo>Load properties file</echo>
<loadproperties srcFile="build_info.properties" prefix="current"/>
<echo>Dist conf path : ${main.dist.dir}</echo>
<copy todir="${main.dist.dir}/prop/conf" preservelastmodified="true">
<fileset dir="${conf.dir}">
<!-- <include name="**/*_server.xml"/> -->
<include name="*_catalina_logging.properties"/>
</fileset>
<condition property="warfilename" value="${name}">
<not>
<isset property="warfilename"/>
</not>
</condition>
<echo>Main Dist directory:${main.dist.dir}</echo>
<echo>Dist directory:${dist.dir}</echo>
<echo>WAR filename:${warfilename}</echo>
<war destfile="${main.dist.dir}/${warfilename}.war"
webxml="WebContent/WEB-INF/web.xml">
<fileset dir="conf"/>
<fileset dir="WebContent"/>
<classes dir="${build.dir}"/>
</war>
<copy todir="${war.archive.dir}" preservelastmodified="true">
<fileset dir="${main.dist.dir}">
<include name="*.war"/>
</fileset>
</copy>
</target>
<target name="setwarfilename_withversion" depends="revision-deploywar">
<loadproperties srcFile="build_info.properties" prefix="current"/>
<echo>Current build number:${current.build.major.number}.${current.build.minor.number}.${current.build.revision.number}</echo>
<property name="warfilename" value="${name}-${hostname}-${current.build.major.number}.${current.build.minor.number}.${current.build.revision.number}" />
<echo>WAR filename set : ${warfilename}</echo>
</target>
<target name="sethostname" >
<property environment="env"/>
<condition property="hostname" value="${env.HOSTNAME}">
<os family="unix"/>
</condition>
<condition property="hostname" value="${env.COMPUTERNAME}">
<os family="windows"/>
</condition>
<echo message="host = ${hostname}"/>
</target>
<target name="setcurrenttime" >
<tstamp>
<format property="build.time" pattern="MM/dd/yyyy hh:mm:ss aa zzzz" timezone="America/Los_Angeles"/>
</tstamp>
<echo message="host = ${build.time}"/>
</target>
<target name="setbuildinfo">
<propertyfile file="build_info.properties">
<entry key="build.user" value="${user.name}"/>
<entry key="build.system" value="${hostname}"/>
<entry key="build.time" value="${build.time}"/>
</propertyfile>
</target>
<target name="revision">
<echo>Revision</echo>
<propertyfile file="build_info.properties">
<entry key="build.revision.number" type="int" operation="+" value="1" pattern="00"/>
</propertyfile>
<antcall target="setbuildinfo"/>
</target>
<target name="minor" >
<echo>Minor</echo>
<propertyfile file="build_info.properties">
<entry key="build.minor.number" type="int" operation="+" value="1" pattern="00"/>
</propertyfile>
<antcall target="setbuildinfo"/>
</target>
<target name="major" >
<echo>Major</echo>
<propertyfile file="build_info.properties">
<entry key="build.major.number" type="int" operation="+" value="1" pattern="00"/>
</propertyfile>
<antcall target="setbuildinfo"/>
</target>
<target name="revision-deploywar" depends="revision, minor, major" description="Deploy application as a WAR file"/>
答
的问题是,以下目标取决于revision
,minor
和major
目标,这将导致所有3个数字都增加。
<target name="revision-deploywar" depends="revision, minor, major" description="Deploy application as a WAR file"/>
一般主号码被手动地通过显影剂递增,而次要数量编译后DIST和修改后递增。
看一看下面的答案的详细信息:https://stackoverflow.com/a/1452157/3041189,
http://stackoverflow.com/questions/14759755/ant-what-is-the-simplest-way-to-add-version-数字到内置的jar可能会帮助你 – 2014-11-04 07:08:02