我正在将我们的构建从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目标,但它会以 reverse 顺序执行上面列出的目标,从-init-taskdefs开始。在-init-taskdefs目标之前的目标中设置了必需的属性,这些属性在从gradle运行时未设置。
真的,我现在要做的就是使用gradle来调用Ant来构建我的项目。这样做的最佳方法是什么,因为使用gradle来构建使用Ant build.xml文件似乎没有按预期工作?我是否必须使用exec? (我希望不会)。
答案 0 :(得分:0)
我发现尝试使用Gradle将Ant与Netbeans项目集成起来太困难且容易出错。相反,我使用Gradle的exec()命令。下面是一个示例,取自构建名为“Common Library”的NetBeans项目的代码。
task commonLibrary {
doLast {
ant.echo("Building Common Library")
exec () {
workingDir = "../netbeans/nb/CommonLibrary"
executable = "ant"
args = ['clean', 'jar']
}
}
}
我意识到这不是您希望的答案,但是将其作为可能的解决方案发布给其他人,特别是那些无法开始重新编写build.xml文件的人。