Отключение фильтрации, включая вложенные элементы <filterset>, в задаче ANT «Копировать» - PullRequest
2 голосов
/ 21 января 2011

Требование:
У нас есть один файл сборки ANT, который используется для режимов DEV и RELEASE.Мы бы хотели включить фильтрацию в режиме DEV и отключить ее в режиме RELEASE.Поскольку мы используем один и тот же файл сборки для обоих режимов (DEV и RELEASE), следовательно, мы ищем способы включения / выключения фильтрации на основе режима сборки.

Мой анализ пока:
Согласно документации, фильтрация может быть отключена, но вложенные элементы всегда будут использоваться, даже если этот атрибут имеет значение false.http://ant.apache.org/manual/Tasks/copy.html
Обратите внимание, что в нашем случае мы не можем отойти от элементов.

Вопрос:
Я хотел бы знать, есть ли обходной путь для отключения фильтрации, включая вложенные элементы вкопировать задание.

1 Ответ

3 голосов
/ 21 января 2011

Вы можете добиться эффекта отсутствия набора фильтров, если у него нет ничего, что бы ничего не делало. Наборы фильтров поддерживают id / refids , так что вы можете определить два - один dev и один релиз - затем переключаться между ними, используя условие на основе режима.Примерно так:

<property name="mode" value="release" /><!--Or value="dev"-->

<filterset id="dev.filter.id">
    <filter token="MODE" value="dev" />
</filterset>

<filterset id="release.filter.id" /><!--Null filterset-->

<!--Choose filterset id depending on mode-->   
<condition property="copy.filter.id"
           value="dev.filter.id"
           else="release.filter.id">
    <equals arg1="${mode}" arg2="dev"/>
</condition>

<copy file="input.txt" tofile="output.txt">
    <filterset refid="${copy.filter.id}" />
</copy>

Если у вас есть несколько вариантов поведения, которые отличаются между режимами разработки и выпуска, возможно, имеет смысл поместить их в отдельные файлы конфигурации сборки и загрузить только один для текущего режима.

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