我正在将我们的构建从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目标,而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开始以相反的顺序执行上面列出的目标。从gradle运行时,没有在-init-taskdefs目标之前在目标中设置的必需属性。
确实,我现在要做的就是使用gradle调用Ant来构建我的项目。最好的方法是什么,因为使用gradle使用Ant build.xml文件进行构建似乎无法正常工作?我必须求助于使用exec吗? (我希望不是)。
最佳答案
我发现尝试将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文件的人)的可能解决方案。
关于netbeans - 从Gradle构建NetBeans Ant项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15486753/