Ant exec рефакторинг - PullRequest
       11

Ant exec рефакторинг

7 голосов
/ 12 мая 2009

У меня есть этот код в моем build.xml:

    <exec executable="cmd" osfamily="winnt">
        <arg value="/c"/>
        <arg value="xsltproc\bin\xsltproc.exe"/>
        <arg value="--xinclude"/>
        <arg value="-o"/>
        <arg value="dist/html/main.html"/>
        <arg value="xsl/html/docbook.xsl"/>
        <arg value="xml/main.xml"/>
    </exec>
    <exec executable="xsltproc" osfamily="unix">
        <arg value="--xinclude"/>
        <arg value="-o"/>
        <arg value="dist/html/main.html"/>
        <arg value="xsl/html/docbook.xsl"/>
        <arg value="xml/main.xml"/>
    </exec>

последовательность та же ... Мне интересно, как рефакторинг этого маленького фрагмента, чтобы он оставался СУХИМ.

Ответы [ 3 ]

10 голосов
/ 12 мая 2009

может быть попробовать использовать свойство для общих битов с arg-line? как то так:

<property name="xslt.common" value="--xinclude -o dist/html/main.html xsl/html/docbook.xsl xml/main.xml"/>
<exec executable="cmd" osfamily="winnt">
    <arg value="/c"/>
    <arg value="xsltproc\bin\xsltproc.exe"/>
    <arg line="${xslt.common}"/>
</exec>
<exec executable="xsltproc" osfamily="unix">
    <arg line="${xslt.common}"/>
</exec>
6 голосов
/ 12 мая 2009

Определить макрос .

Вы можете добавить общие части в элемент и условно выполнить определенные части.

0 голосов
/ 12 мая 2009

I думаю, версия Unix будет работать под NT, если у вас есть доступ к xsltproc.exe через переменную среды PATH. Вы можете попробовать удалить осфамил и посмотреть.

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