【问题标题】:Intermodule dependency in antant中的模块间依赖
【发布时间】:2017-03-20 18:41:32
【问题描述】:

我正在使用 Ant 1.8

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

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

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

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

【问题讨论】:

  • 为什么不能使用ivy?它很好地解决了这个问题。

标签: ant intellij-idea


【解决方案1】:

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 任务结合使用。让 ivy 模块间依赖声明自动确定模块构建顺序。

【讨论】:

    【解决方案2】:

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

    除了上面的答案,我想添加细节,如果属性是从属性文件加载的。

    项目结构:


    |-- build.xml
    |-- ProjectOne
    -- build.xml
    -- antbuilds.properties
    |-- 项目二
    -- 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多