我在将属性回显到文件时遇到问题。我很确定有一些我现在无法发现的拼写错误或我遗失的一些概念。目标是:
<target name="war" depends="build">
<propertyfile file="project-version.properties">
<entry key="build.version" type="int" operation="+" value="1"/>
</propertyfile>
<echo file="WebContent/version.txt">${major.version}.${minor.version}.${build.version}</echo>
<war destfile="dist/system.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"/>
<classes dir="target/classes"/>
</war>
</target>
它正确地从文件project-version.properties:
更新密钥build.version#Tue Mar 29 19:14:18 BRT 2011
build.number=3
major.version=1
build.version=16
minor.version=0
但输出版本.txt是:
${major.version}.${minor.version}.${build.version}
答案 0 :(得分:3)
propertyfile
任务不会将属性加载到脚本中,这就是为什么当您尝试输出它们时,ant无法将它们扩展为任何值。
要解决此问题,您可以在更新后加载project-version.properties文件。
<target name="war" depends="build">
<propertyfile file="project-version.properties">
<entry key="build.version" type="int" operation="+" value="1"/>
</propertyfile>
<property file="project-version.properties" />
<echo file="WebContent/version.txt">${major.version}.${minor.version}.${build.version}</echo>
<war destfile="dist/system.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"/>
<classes dir="target/classes"/>
</war>
</target>