使用AntBuilder
的importBuild
方法,可以很容易地从Ant迁移到Gradle。 我们只需要添加这一行并引用我们现有的Ant构建XML文件,现在就可以将所有Ant任务作为Gradle任务执行。 如果要避免任务名称与Gradle任务名称冲突,可以自动重命名Ant任务。 我们将闭包参数与importBuild
方法一起使用,并返回新的任务名称。 现有的Ant任务名称是闭包的第一个参数。
让我们首先创建一个简单的Ant build.xml
文件:
<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-
:
// 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任务:
$ gradle tasks --all
...
Ant tasks
---------
ant-showAnotherMessage - Show another simple message [ant-showMessage]
ant-showMessage - Show simple message
...
$
我们可以执行ant-showAnotherMessage
任务,并获得以下输出:
$ 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编写