我有以下两个文件:
build.gradle:
ant.importBuild 'build.xml'
build.xml:
<project>
<target name="hello">
<echo>Hello, I'm ${testVar}</echo>
</target>
</project>
如何将testVar
变量从gradle传递给ant以触发ant构建?
gradle -PtestVar=John hello
输出
> Task :hello
[ant:echo] Hello, I'm ${testVar}
这意味着testVar
没有赋值。
我可以使用ant -DtestVar=John -buildfile build.xml hello
命令将testVar
变量直接传递给ant。
我怎么能用gradle做同样的事情?
我发现将build.gradle文件更改为
ant.importBuild 'build.xml'
ant.properties['testVar'] = testVar
解决了问题。
修改后,gradle -PtestVar=Ken hello
生成
> Task :hello
[ant:echo] Hello, I'm Ken
这就是我想要的结果。
-P
用于将属性直接传递给Gradle构建。Gradle脚本会看到这些属性,但Ant脚本不会。从技术上讲,您提供的答案是有效的,但可能会变得乏味,因为您必须确保在Gradle脚本中将每个属性从Gradle传递给Ant。
如果要为Ant提供属性,请改用-D
。