Статьи

Gradle Goodness: переименование имен задач Ant при импорте файла сборки Ant

Миграция с Ant на Gradle очень проста с importBuild метода AntBuilder из AntBuilder . Нам нужно только добавить эту единственную строку и сослаться на наш существующий XML-файл сборки Ant, и теперь все задачи Ant могут выполняться как задачи Gradle. Мы можем автоматически переименовывать задачи Ant, если мы хотим избежать конфликтов имен задач с именами задач Gradle. Мы используем аргумент замыкания с методом importBuild и возвращаем новые имена задач. Имя существующей задачи Ant является первым аргументом закрытия.

Давайте сначала создадим простой файл Ant build.xml :

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<project>
 
    <target name="showMessage"
        description="Show simple message">
 
        <echo message="Running Ant task 'showMessage'"/>
 
    </target>
 
    <target name="showAnotherMessage"
        depends="showMessage"
        description="Show another simple message">
 
        <echo message="Running Ant task 'showAnotherMessage'"/>
 
    </target>
 
</project>

Файл сборки содержит две цели: showMessage и showAnotherMessage с зависимостью задачи. У нас есть следующий пример файла сборки Gradle для использования этих задач Ant и ant- префикса к исходным именам ant- :

01
02
03
04
05
06
07
08
09
10
11
12
// Import Ant build and
// prefix all task names with
// 'ant-'.
ant.importBuild('build.xml') { antTaskName ->
    "ant-${antTaskName}".toString()
}
 
// Set group property for all
// Ant tasks.
tasks.matching { task ->
    task.name.startsWith('ant-')
}*.group = 'Ant'

Мы можем запустить задачу задач, чтобы увидеть, были ли задачи Ant импортированы и переименованы:

1
2
3
4
5
6
7
8
$ gradle tasks --all
...
Ant tasks
---------
ant-showAnotherMessage - Show another simple message [ant-showMessage]
ant-showMessage - Show simple message
...
$

Мы можем выполнить задачу ant-showAnotherMessage и получим следующий вывод:

01
02
03
04
05
06
07
08
09
10
$ gradle ant-showAnotherMessage
:ant-showMessage
[ant:echo] Running Ant task 'showMessage'
:ant-showAnotherMessage
[ant:echo] Running Ant task 'showAnotherMessage'
 
BUILD SUCCESSFUL
 
Total time: 3.953 secs
$

Написано с Gradle 2.2.1

Ссылка: Gradle Good: переименуйте имена задач Ant при импорте файла сборки Ant от нашего партнера JCG Хьюберта А. Кляйна Иккинка в блоге JDriven .