Можно ли запускать задачи Gradle из Ant? - PullRequest
1 голос
/ 08 марта 2012

Я исследую замены для Муравья.Я смотрел на Gant и Gradle .

Возможно ли запустить задачу Gradle из Ant?Это возможно в Gant с помощью taskdef.

<taskdef
    name         = "gant"
    classname    = "org.codehaus.gant.ant.Gant"
    classpathref = "classpath" 
    />

<gant />

Есть ли нечто подобное Gradle?Я с нетерпением жду начала перехода с Ant на Gradle, но у нас есть большая инфраструктура Ant, и любые создаваемые мной скрипты Gradle должны вызываться из Ant.

Ответы [ 4 ]

5 голосов
/ 12 января 2016

Создайте макроопределение для gradle, вызывайте его как любую другую задачу Вот настройка и пример ...

    <!-- Gradle path stuff -->
<property environment="env" />
<condition property="gradle.executable" value="${env.GRADLE_HOME}/bin/gradle.bat" else="${env.GRADLE_HOME}/bin/gradle">
    <os family="windows" />
</condition>

<!-- Macro def, gives us an ant 'gradle' task-->
<macrodef name="gradle">
    <attribute name="task" />
    <sequential>
        <exec executable="${gradle.executable}" dir="." failonerror="true">
            <arg value="@{task}" />
        </exec>
    </sequential>
</macrodef>

Пример использования макроса def

<!-- Example, call grade with new macro -->
<target name="example">
    <gradle task="build" />
</target>
2 голосов
/ 08 марта 2012

Вместо переключения технологии сборки, почему бы не использовать комбинацию ivy и groovy для расширения возможностей существующих сборок ant?

Примером является следующая публикация:

Разбор HTML с использованием скрипта Ant

Кстати, я большой поклонник Gradle, однако, как и вы, я должен жить и поддерживать большое наследие ANT: -)

2 голосов
/ 28 апреля 2015

На самом деле я хочу сделать то же самое и где это реализовано, вызывая файл sh, а затем sh вызывал gradle, но это было слишком много вокруг куста, и, наконец, следующий код заставил его работать круто ..

Надеюсь, это поможет вам ..

<property environment="env" />
<property name="gradle.wrapper.executable" location="${env.GRADLE_HOME}/bin/gradle" />
<target name="dependencies-report" description="Creates a text file report of the depdency tree">
<exec executable="${gradle.wrapper.executable}" dir=".">
    <arg value="dependencyReport" />
</exec>
</target>
2 голосов
/ 08 марта 2012

Gradle не предлагает задачу Ant для запуска сборки Gradle из Ant. Что вы можете сделать, это вызвать команду Gradle (например, gradle build) из Ant.

С точки зрения интеграции с Ant, Gradle предлагает две функции: импорт сборок Ant и повторное использование задач Ant.

Градл сильно отличается от Ганта. Gradle - это совершенно новая система сборки; Гант - это тонкий слой над муравьем.

...