Есть ли лучший способ создать вторую сборку муравья из сборки муравья, которая является кросс-платформенной? - PullRequest
0 голосов
/ 09 февраля 2012

Вот что у меня работает с окнами

<target name="forknewant">
 <property name="ant.dir" value="${basedir}/apache-ant-1.8.2" />
 <exec executable="cmd" dir="${project.loc}">
    <arg value="/K" />
    <arg value="start" />
    <arg value="&quot;${project.title}&quot;" />
    <arg line="cmd.exe /k ant" />
    <arg value="-Dtest.haltonfailure=no" />
    <env key="CLASSPATH" value="" />
    <env key="ANT_HOME" value="${ant.dir}" />
    <env key="PATH" value="${ant.dir}/bin;${java.home}/bin" />
 </exec>
</target>

Требование для этого кода - форк новой сборки, родительская сборка не ждет и выводится консольный вывод.

Я знаю эту работу для Windows, но я ищу кроссплатформенный способ сделать это.

1 Ответ

1 голос
/ 03 марта 2012

Вы можете достичь желаемого с помощью задачи <a href="http://ant.apache.org/manual/Tasks/ant.html" rel="nofollow">ant</a>, которая запускает один скрипт Ant из другого. Как то так:

<ant antfile="build.xml"
     dir="${project.loc}"
     inheritAll="false"
     inheritRefs="false" />

Однако родительский файл сборки будет ожидать завершения этой задачи, прежде чем она продолжится.

Вы можете использовать задачу <a href="http://ant.apache.org/manual/Tasks/parallel.html" rel="nofollow">parallel</a> для параллельного запуска нескольких вещей. В зависимости от того, что именно вы хотите сделать, это может решить вашу проблему. Обязательно прочитайте предупреждения о параллелизме в документации по parallel.

parallel будет ожидать завершения всех выполняемых задач. Однако вы можете использовать тег daemons, чтобы избежать этого. Поэтому самое близкое к тому, что вы просите, будет:

<parallel>
    <daemons>
        <ant antfile="build.xml"
             dir="${project.loc}"
             inheritAll="false"
             inheritRefs="false" />
    </daemons>
</parallel>

Это запустит файл сборки Ant в ${project.loc}, не дожидаясь его завершения. Однако есть одно важное предостережение: если основной файл сборки завершится первым, он завершит процесс порожденной сборки. Все это объясняется в parallel документе.

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