запуск определенной цели в разных скриптах Ant в разных каталогах - PullRequest
1 голос
/ 03 февраля 2012

У нас большое количество приложений. Все они имеют файл build.xml, расположенный в базовой директории проектов. Я пытаюсь создать скрипт ant, который будет проходить и вызывать конкретную цель для каждого из файлов build.xml во всех проектах.

Вот вопросы:

  1. Некоторые проекты находятся в более глубоких каталогах, чем другие.
  2. За один раз нужно построить только некоторые проекты.

Я пытался использовать subant + antfile и определял CSV путей к файлам в файле свойств, но это не сработало. Вот то, что у меня есть, и ошибка, которую я получаю.

Если есть лучший способ сделать это или вы знаете, в чем моя проблема, пожалуйста, дайте мне знать! Спасибо!

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

projects.to.build=

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

    <filelist
        id="projectNames"
        dir="${basedir}"
        files="${projects.to.build}"
    />

    <target name="debugAll" description="Builds all the projects listed in the projectNames.properties file.">
        <subant target="debug" antfile="${projects.to.build}">
        </subant>
    </target>

Вот ошибка, которую я получаю, когда пытаюсь запустить скрипт сборки, когда в файле свойств определены проекты. Я использую относительный путь. Например: .. \ Apps \ AnApp1 \ build.xml, .. \ Apps \ AnApp2 \ build.xml, .. \ OtherApps \ foo \ AnotherApp1 \ build.xml

"No Build Path Specified" (at my subant task)

Ответы [ 2 ]

11 голосов
/ 04 февраля 2012

Вы указали атрибут antfile , поэтому ANT ожидал один build.xml файл.


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

Вот пример:

<project name="Subant demo" default="run-debug-target">
    <target name="run-debug-target">
        <subant target="debug">
            <fileset dir="." includes="**/build.xml" excludes="build.xml"/>
        </subant>
    </target>
</project>

Обновление

В качестве альтернативы можно использовать список файлов :

<project name="Dry run" default="run">
    <target name="run">
        <subant target="test">
            <filelist dir="projects" files="one/build.xml,two/build.xml,three/build.xml,four/build.xml"/>
        </subant>
    </target>
</project>

Обработка следующих файлов сборки:

  • projects / one / build.xml
  • projects / two / build.xml
  • projects / three / build.xml
  • projects / four / build.xml
0 голосов
/ 25 февраля 2016

Возможно ли запустить цель во всех файлах сборки одновременно?

Например,

<project name="Dry run" default="run">
    <target name="run">
        <subant target="test">
            <filelist dir="projects" files="one/build.xml,two/build.xml,three/build.xml,four/build.xml"/>
        </subant>
    </target>
</project>

В этом примере есть ли способ запустить целевой "тест", представленный ввсе файлы сборки (один / build.xml, два / build.xml, три / build.xml, четыре / build.xml) одновременно?

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