Как передать параметры из градиента в муравей?

У меня есть два файла:

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?

Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
1
0
933
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я обнаружил, что изменение файла 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.

Другие вопросы по теме