Свойство Echo Ant для файла - PullRequest
1 голос
/ 30 марта 2011

У меня проблемы с отображением свойства в файл.Я почти уверен, что есть какая-то ошибка, которую я не могу определить прямо сейчас, или какая-то концепция, которую я пропускаю.Цель:

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

Правильно обновляет ключ build.version из файла project-version.properties:

#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}

1 Ответ

3 голосов
/ 30 марта 2011

Задача 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>
...