我正在尝试自动化一个构建过程,该过程涉及循环几个目录并在所有目录上运行“ant all”。它们都有一个简单的 build.xml。
我可以通过 shell 脚本来做到这一点,但我使用的是 Groovy 中的其他东西,例如,使用 UI Performance Grails 插件,所以我想坚持使用 Groovy。
网络上的所有文档/论坛/关于 SO 的其他问题,谈论运行 ant.exec 和其他 AntBuilder 方法,但我没有运行一个简单的 ant all。
试试下面的例子。
def ant = new AntBuilder()
ant.fileset(id:"builds", dir:".", includes:"**/build.xml")
ant.project.references.builds.each {
ant.project.log "Building ${it}"
ant.ant(antfile:it, target:"all")
}
作为一个独立的 groovy 脚本为我工作(我没有尝试从 grails 调用它)
我找到了一种更简单的方法,使用 subant 任务。像这样的东西:
ant.subant(target:"all") {
fileset(dir:"${pathToBuildDir}" includes:"build.xml")
}