Муравей строит несколько банок с несколькими манифестами, но с одним BuildNumber - PullRequest
1 голос
/ 08 ноября 2011

У меня есть 2 переменные, которые мне нужны. Первый - это DSTAMP с форматированием yyyy-MM-dd, а второй - это buildNumber из моего файла .build. В простой структуре, подобной этой:

<project .....>

   <property ....>

   <target ....>

   <target .....>

</project>

Мой вопрос: как я могу установить $ {build.number} и DSTAMP как свойство? Я пытался сделать это:

<project .....>

   <tstamp>
   <format property="DSTAMP" pattern="yyyy-MM-dd" />
</tstamp>

   <buildnumber file=".build"/>

   <property ....>

   <target ....>

   <target .....>

</project>

Я думал, что смогу получить к нему доступ с помощью $ {build.number} и $ {DSTAMP} в любом месте моего скрипта ant, но он говорит о неожиданном токене. Как я могу хранить эти свойства для доступа к ним в любом месте?

Ant версия 1.5.4. Кажется, что он принимает это в Ant 1.6+, но я бы не стал менять свою библиотеку только для этого.

1 Ответ

1 голос
/ 17 ноября 2011

Хорошо, я использовал другое решение, так как задача buildNumber не работает так, как я хочу:

<project name="MyProject" default="all" basedir=".">

 <taskdef resource="net/sf/antcontrib/antlib.xml"/>

 <tstamp>
    <format property="DSTAMP" pattern="yyyy-MM-dd" />
    <format property="TODAY" pattern="yyyy-MM-dd HH:MM:SS" />
 </tstamp>
 <property file=".build"/>
 <property name="buildNum" value="${build.number}"/>

 [... some tasks ...]

 <target name="incrementVersion">
        <echo>Building version ${build.number} success</echo>
        <propertyfile file="./.build" comment="Build Number">
                <entry key="build.number" type="int" operation="+" default="1000" pattern="0000"/>
        </propertyfile>
 </target>

<target name="all" depends="some,other,target,incrementVersion"/>
</project>

Таким образом, я на 100% уверен, что он будет увеличиваться только в конце моих задач и только в случае успеха. Здесь есть только небольшая проблема: вы должны запустить incrementVersion один раз, чтобы он мог инициализировать параметр buildNumber. Я мог бы сделать некоторые, если бы существовал контроль, но так как мой файл никогда не будет удален, мне все равно. Вы должны использовать Ant 1.6+ и Ant Contrib. Я использую Ant 1.8.2 и Ant Contrib 1.0b3 спасибо всем.

...