我有一个包含6个子项目的项目,其中包含ant build.xml文件。我正在尝试编写一个顶级gradle文件,它将在所有项目上执行ant'default'任务,尊重它们的顺序依赖性。所以我在settings.gradle(这恰好是我希望它们运行的顺序)中有这个:
include 'core', 'api-web', 'execution', 'cluster', 'persistence', 'choreo-tests'
我在顶级build.gradle中有这个:
project(':api-web') {
dependencies {
compile project(':core')
}
}
project(':execution') {
dependencies {
compile project(':api-web')
}
}
project(':cluster') {
dependencies {
compile project(':execution')
}
}
project(':persistence') {
dependencies {
compile project(':cluster')
}
}
project(':choreo-tests') {
dependencies {
compile project(':persistence')
}
}
然后每个目录在build.gradle中都有这个:
ant.importBuild 'build.xml'
但是,如果我尝试运行它:
gradle --info default
我得到了这个输出:
> Could not find method compile() for arguments [project ':core'] on org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@4d12bc7b.
我不明白,因为build.xml文件都有编译目标。我需要做些什么才能将ant build.xml文件加载到他们自己的命名空间中?
或者,更具体地说,在加载了包含从ant目标创建的gradle任务的子项目之后,如何指定子项目任务之间的依赖关系?我的每个build.xml都有一个'default'
任务。如何指定'default'
中的project(':api-web')
任务取决于'default'
的{{1}}任务?