ANT Как использовать свойства лексической области действия в Ant 1.8? - PullRequest
2 голосов
/ 19 апреля 2011

У меня есть скрипт, который не работает, потому что свойство после того, как набор стал недоступным для записи

<target name="test" >

    <fileset id="dir1" dir="./dir1"/>
    <fileset id="dir2" dir="./dir2"/>

    <pathconvert property="path.converted" refid="dir1"/>
    <echo message="${path.converted}"/>
    <property name="path.converted" value="set this property manually"/>
    <echo>${path.converted}</echo>
    <pathconvert property="path.converted" refid="dir2"/>
    <echo message="${path.converted}"/>
</target>

всегда повторял один и тот же результат, но я хочу, чтобы эхо было другим

Я читал в Apache AntВыпуск 1.8.0, который

Локально ограниченные локальные свойства, то есть свойства, которые определены только в целевом, последовательном блоке или аналогичной среде.Это очень полезно внутри s, где макрос теперь может определять временное свойство, которое исчезнет после завершения задачи.

Как их использовать?

Ответы [ 2 ]

4 голосов
/ 19 апреля 2011

Я нашел решение.Использовать локальное задание

<target name="direct" depends="">

    <fileset id="dir1" dir="./dir1"/>
    <fileset id="dir2" dir="./dir2"/>

    <!--<property name="path.converted" value="0"/>-->
    <local name="path.converted"/>

    <pathconvert property="path.converted" refid="dir1"/>
    <echo message="${path.converted}"/>
    <local name="path.converted"/>
    <property name="path.converted" value="0"/>

    <echo>${path.converted}</echo>
    <local name="path.converted"/>
    <pathconvert property="path.converted" refid="dir2"/>
    <echo message="${path.converted}"/>

</target>
0 голосов
/ 20 апреля 2011

Я бы просто использовал разные имена для path.converted для примера выше.
path.converted.1, path.converted.2 и т. д.

Если бы вы создали макроопределение, вам определенно следует использовать задачу local , чтобы сделать свойство локальным.

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