Ant项目包含要构建的多个文件夹

时间:2017-08-31 07:49:28

标签: java ant build

我正在尝试在Ant中实现以下层次结构:

ParentProject

build.xml
RuntimeFolder_1
    build.xml
RuntimeFolder_2
    build.xml
RuntimeFolder_n
    build.xml

这里,当我构建ParentFolder build.xml时,它应该迭代所有子文件夹并构建它们。用户可以添加任意数量的运行时文件夹。 此外,我应该能够单独构建RuntimeFolder_1 ... RuntimeFolder_n。 有人知道我该怎么做吗?

2 个答案:

答案 0 :(得分:1)

我知道OP要求Ant,但他表达了对Gradle解决方案的兴趣,这可能看起来像

build.gradle
settings.gradle
project1/
    build.gradle
project2/
    build.gradle
project3/
    build.gradle

您的settings.gradle可能看起来像

rootDir.listFiles().each {
    if (new File(it, 'build.gradle').exists()) {
        include ":$it.name"
    }
}

然后,您将java插件应用于每个子项目。这可以在根build.gradle

中以编程方式完成
subprojects {
    apply plugin: 'java'
}

或者在每个subproject\build.gradle

apply plugin: 'java'

如需进一步阅读,请参阅multi project buildsjava plugin

答案 1 :(得分:0)

为此,我们可以使用subant:http://ant.apache.org/manual/Tasks/subant.html

以下是示例:

父build.xml将包含:

<macrodef name="iterate">
    <attribute name="target"/>
    <sequential>
        <subant target="@{target}">
            <fileset dir="modules" includes="*/build.xml"/>
        </subant>
    </sequential>
</macrodef>
<target name="compile">
    <iterate target="compile"/>
</target>

内部文件夹build.xml将包含这些目标。