蚂蚁中的模块间依赖性

时间:2012-03-16 23:53:55

标签: ant intellij-idea

我正在使用Ant 1.8

我在intelliJ IDEA中有多个模块。每个模块都有一个build.xml,目前我需要浏览该文件的build.xml并为每个模块运行ant。 例如模块B的构建成功取决于模块A的构建是否成功。

现在,我想更新此过程。如果存在一个选项,我可以编写单个构建过程,它将首先构建模块A的分发,然后在构建B的分发时,将检查模块A的构建是否成功。

有没有办法使用当前的Ant机制。我可以在常春藤看到类似的东西,但我不能在我的项目中使用它。

请使用基本的Ant功能建议一种方法。

2 个答案:

答案 0 :(得分:3)

ANT中的subant任务是调用多模块构建的最灵活方式,例如:

<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

注意:

在我看来,使用此任务的最有效方法是将其与Apache ivy的buildlist任务相结合。让常春藤模块间依赖声明自动确定模块构建顺序。

答案 1 :(得分:0)

谢谢马克!! 你的回答对我很有帮助。

除了上面的回答,我想添加详细信息,如果属性是从属性文件加载的。

项目结构:


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

Common 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>