2011-03-29 27 views
1

我有一个属性回显到文件的问题。我很确定有一些拼写错误,我现在不能发现或者我缺少一些概念。我们的目标是:回声蚂蚁属性到一个文件

<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 

但产量version.txt为:

${major.version}.${minor.version}.${build.version} 

回答

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> 
+0

对。非常感谢。 – Leonardo 2011-03-30 00:19:00