Межмодульная зависимость в муравье - PullRequest
1 голос
/ 17 марта 2012

Я использую Ant 1.8

У меня есть несколько модулей в IntelliJ IDEA. У каждого модуля есть build.xml, и в настоящее время мне нужно просмотреть build.xml этого файла и запустить ant для каждого модуля. например Успешность сборки модуля B зависит от того, была ли успешной сборка модуля A.

Теперь я хочу обновить этот процесс. Было бы здорово, если бы существовала опция, в которой я мог бы написать один процесс сборки, который сначала соберет дистрибутив для модуля A, а затем при сборке дистрибутива для B будет проверен, если сборка для модуля A будет успешной.

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

Пожалуйста, предложите подход с использованием основных функций Ant.

Ответы [ 2 ]

3 голосов
/ 17 марта 2012

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

<project name="parent" default="build">

    <target name="build">
        <subant>
            <filelist dir=".">
                <file name="moduleA/build.xml"/>
                <file name="moduleB/build.xml"/>
            </filelist>
            <target name="clean"/>
            <target name="build"/>
        </subant>
    </target>

</project>

Структура проекта

|-- build.xml
|-- moduleA
|   `-- build.xml
`-- moduleB
    `-- build.xml

Примечание:

На мой взгляд, наиболее эффективный способ использовать эту задачу - объединить ее с задачей buildlist от Apache ivy.Позвольте объявлениям межмодульной зависимости ivy автоматически определять порядок сборки модуля.

0 голосов
/ 20 марта 2017

Спасибо Марк !!Ваш ответ мне очень помог.

В дополнение к ответу выше, я хотел бы добавить детали, если свойства загружаются из файла свойств.

Структура проекта:

| - build.xml| - ProjectOne- build.xml- antbuilds.properties| - ProjectTwo- build.xml- antbuilds.properties

Общий файл сборки ANT:

<project name="Parent" default="all">
<target name="ProjectOne">
    <subant>
        <property file="ProjectOne/antbuilds.properties"/>
        <filelist dir=".">
            <file name="ProjectOne/build.xml"/>
        </filelist>
        <target name="deploy"/>
    </subant>
</target>
<target name="ProjectTwo">
    <subant>
        <property file="ProjectTwo/antbuilds.properties"/>
        <filelist dir=".">
            <file name="ProjectTwo/build.xml"/>
        </filelist>
        <target name="deploy"/>
    </subant>
</target>
<target name="all" depends="ProjectOne, ProjectTwo">
</target>

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