如何为 Ant 构建提供 Gradle 依赖项

How to provide Gradle dependencies for Ant build

我正在尝试从 ant 迁移到 gradle。第一阶段是将所有依赖项移动到 gradle.build 并仍然通过 ant.

构建 war

要导入 ant 构建,我正在使用此代码:

ant.importBuild('build.xml') { antTargetName ->
    'ant_' + antTargetName
}

要将所有依赖项从 gradle 复制到 ant,我正在尝试使用它:

task copyDependenciesForAnt() {
    def antLibsPath = ant."tmp.build.dir" + "/" + ant."project.libs.folder"
    configurations.compile.each { Files.copy(Paths.get(it), Paths.get(antLibsPath)) }
}
ant_war.mustRunAfter copyDependenciesForAnt

使用这段代码我遇到了问题,因为我不知道如何在这里使用 Files.copy。在 gradle 中可能还有更简单的方法来实现此目的,但我不知道如何实现。

您可以在Gradle中定义一个copy任务,如下:

task copyDependenciesForAnt(type: Copy) {
    from configurations.compile
    into ant."tmp.build.dir" + "/" + ant."project.libs.folder"
}

ant_war.dependsOn copyDependenciesForAnt

此外,我建议使用 dependsOn 而不是 mustRunAfter 进行任务依赖关系连接,以确保正确的执行顺序。