我正在将我们的构建从 Ant 转换为 Gradle。我们的第一步是添加 Gradle 构建文件,以便我们可以开始使用 Gradle 作为我们的构建工具。这让我们可以使用现有的构建脚本来使用 Ant 进行构建,并随着时间的推移将它们转换为 Gradle。我只想让 Gradle 调用现有的 Ant 构建文件。我们的项目都是 NetBeans 项目,有 build.xml 和 nbproject/build-impl.xml 文件。一些项目需要 NetBeans 构建属性,可在 ~/.netbeans/6.5.1/build.properties 中找到。我已成功将 NetBeans user.properties.file 属性设置为 ~/.netbeans/6.5.1/build.properties。
当我使用 Ant 构建时,我会调用它:
ant -Duser.properties.file=~/.netbeans/6.5.1/build.properties dist
这将执行 dist 目标,该目标取决于 init 目标,该目标取决于下面列出的目标:
pre-init, init-private, init-userdir, init-user, init-project, do-init, post-init, init-check, -init-taskdefs
上面列出的目标按指定的顺序执行。当我调用 'gradle dist' 时,它会调用 init Ant 目标,但随后它会以相反的顺序执行上面列出的目标,从 -init-taskdefs 开始。在 -init-taskdefs 目标之前的目标中设置了一些必需的属性,这些属性在从 gradle 运行时不会被设置。
真的,我现在想做的就是使用 gradle 调用 Ant 来构建我的项目。由于使用 gradle 构建使用 Ant build.xml 文件似乎没有按预期工作,因此最好的方法是什么?我必须求助于使用 exec 吗?(我希望不是)。