如何将参数从gradle传递到ant?

时间:2018-08-02 02:47:34

标签: gradle ant

我有以下两个文件:

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分配值。

我可以使用testVar命令将ant -DtestVar=John -buildfile build.xml hello变量直接传递给ant。

我如何使用gradle做同样的事情?

2 个答案:

答案 0 :(得分:1)

我发现将 build.gradle 文件更改为

ant.importBuild 'build.xml'
ant.properties['testVar'] = testVar

解决了问题。

修改后,gradle -PtestVar=Ken hello生成

> Task :hello
[ant:echo] Hello, I'm Ken

这是我想要的结果。

答案 1 :(得分:0)

-P用于将属性直接传递到您的Gradle构建。您的Gradle脚本将看到这些属性,但您的Ant脚本则不会。您提供的答案在技术上是可行的,但可能会变得乏味,因为您必须确保在Gradle脚本中将所有属性从Gradle传递到Ant。

如果要向Ant提供属性,请改用-D