Ant передает определенные строковые значения из одного файла в другой - PullRequest
1 голос
/ 07 июля 2011

Я пытаюсь настроить автоинкремент номера версии в приложении Android. Я настроил задачи Ant, которые проверяют файл, затем автоматически инкрементируют строку со значением версии, а затем автоматически выполняют регистрацию в системе TFS. Таким образом, этот файл test.properties имеет такой контекст:

versionCode="1"

Автоинкремент выполнил эту задачу:

<propertyfile file="${basedir}/src/test.properties">
  <entry key="versionCode" value="1" type="int" operation="+" />
</propertyfile>

Как мне настроить замену значения этой строки: android: versionCode = "1", расположенного в целевом файле androidmanifest.xml?

Ответы [ 2 ]

1 голос
/ 07 июля 2011

Полагаю, вы можете использовать задачу ReplaceRegExp в Ant:

Задача на основе каталога для замены вхождения данного регулярного выражения шаблоном подстановки в файле или наборе файлов.

Это может выглядеть примерно так:

<replaceregexp file="${src}/androidmanifest.xml"
           match="android:versionCode=&quot;[0-9]+&quot;"
           replace="android:versionCode=&quot;${versionCode}&quot;"
/>

Свойство build.number можно получить, прочитав файл свойств перед выполнением этой задачи.

0 голосов
/ 07 июля 2011

Решение с ванильным муравьем, без надстройки Ant, вы можете использовать шаблон файла свойств, который имеет =

f.e. named props.txt
    ...
    android:versionCode=@versionCode@
    ...

, а затем использовать свойство $ {versionCode}, установленное вашим рабочим процессом
и создайте файл свойств из вашего шаблона с копией + вложенный набор фильтров =

 <!-- somewhere set in your workflow maybe via userproperty -DversionCode=42 -->
  <property name="versionCode" value="42"/>
 ...
  <copy file="props.txt" todir="/some/path" overwrite="true">
   <filterset>
    <filter token="versionCode" value="${versionCode}"/>
   </filterset>
  </copy>

/ some / path / props.txt будет иметь =

...
android:versionCode=42
...

см. Руководство по муравьям для наборов фильтров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...