В моем файле build.xml я увеличиваю номер версии сборки в файле свойств вот так :
<target name="minor">
<propertyfile file="build_info.properties">
<entry key="build.minor.number" type="int" operation="+" value="1" pattern="00" />
<entry key="build.revision.number" type="int" value="0" pattern="00" />
</propertyfile>
</target>
У меня также есть похожие записи для основной версии и версии. (Из Номера сборки: major.minor.revision )
Это отлично работает. Теперь я хотел бы взять этот увеличенный номер сборки и вставьте его в мой исходный код:
//Main.as
public static const VERSION:String = "@(#)00.00.00)@";
Используя:
<target name="documentVersion">
<replaceregexp file="${referer}" match="@\(#\).*@" replace="@(#)${build.major.number}.${build.minor.number}.${build.revision.number})@" />
</target>
Теперь эта разновидность работает.Она действительно заменяет версию , но с устаревшим номером версии.Поэтому всякий раз, когда я запускаю сценарий ANT, build_info.properties обновляется до правильной версии, но в моем файле исходного кода используется предварительно обновленное значение.
Я повторил эхо, чтобы проверить, действительно ли я увеличиваю номер сборки, прежде чем вызывать замену, и я заметил это эхо:
<echo>${build.minor.number}</echo>
//After updating it still shows old non updated value here but the new value in the property file.
Итак, есть ли способ получить обновленное значение в файле свойств, чтобы я мог его использовать вставить в мой исходный код?
Ура
Итак, потратив несколько часов на то, чтобы решить эту проблему, я разместил этот вопрос и через 20 минут разобрался с ней.
Проблема заключалась в том, что в верхней части моего файла сборки было написано:
<property file="build_info.properties"/>
Я предполагаю, что это было вызвано скопингом и тем, что свойства неизменяемы, поэтому я никогда не мог обновить значение. Удалив эту строку и добавив следующую, все заработало отлично:
<target name="injectVersion">
<property file="build_info.properties"/>
<replaceregexp file="${referer}" match="@\(#\).*@" replace="@(#)${build.major.number}.${build.minor.number}.${build.revision.number})@" />
</target>