我正在尝试在Ant中实现以下层次结构:
ParentProject
build.xml
RuntimeFolder_1
build.xml
RuntimeFolder_2
build.xml
RuntimeFolder_n
build.xml
这里,当我构建ParentFolder build.xml时,它应该迭代所有子文件夹并构建它们。用户可以添加任意数量的运行时文件夹。 此外,我应该能够单独构建RuntimeFolder_1 ... RuntimeFolder_n。 有人知道我该怎么做吗?
答案 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 builds和java 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将包含这些目标。