2012-03-07 5 views
1

Я изучаю замену для Ant. Я посмотрел Gant и Gradle.Можно ли запускать задачи Gradle из Ant?

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

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

<gant /> 

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

Спасибо!

ответ

2

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

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

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

+0

Это очень плохо, но спасибо за информацию. Gant был бы идеальным, но он не позволяет создавать динамические задачи/цели (исключает его формат gantfile). Поэтому я обратился к Gradle, который имеет гораздо больше возможностей, чем мне нужно, но поддерживает динамические задачи, но не вызывается из Ant. Ну что ж. :) – mwcz

2

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

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

Parse HTML using with an Ant Script

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

+1

+1 ... слишком много людей, чтобы жить и поддерживать большое наследие ANT. Расширение через скрипты обеспечивает средний путь. – Jayan

1

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

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

<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> 
3

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

<!-- 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> 

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

<!-- Example, call grade with new macro --> 
<target name="example"> 
    <gradle task="build" /> 
</target> 
Смежные вопросы