У меня есть два файла:
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 напрямую, используя команду ant -DtestVar=John -buildfile build.xml hello.
Как я могу сделать то же самое с помощью 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 в Ant в своем скрипте Gradle.
Если вы хотите предоставить свойство Ant, используйте вместо него -D.