返回介绍

使用 Ant 插件 - 导入一个 Ant 构建

发布于 2020-07-06 13:40:58 字数 5870 浏览 1041 评论 0 收藏 0

导入一个Ant构建

你可以在你的gradle项目中通过ant.importBuild()来导入一个ant构建,当你导入了一个ant构建,每一个ant target都会被视为一个Gradle任务.这意味着你可以像操作,执行gradle任务一样操作,执行ant target

例 16.8.导入ant构建

build.gradle

  1. ant.importBuild 'build.xml'

build.xml

  1. <project>
  2. <target name="hello">
  3. <echo>Hello, from Ant</echo>
  4. </target>
  5. </project>

gradle hello的输出

  1. >\> gradle hello
  2. >:hello
  3. >[ant:echo] Hello, from Ant
  4. >
  5. >BUILD SUCCESSFUL
  6. >
  7. >Total time: 1 secs

你可以添加一个依赖于ant target的任务:
例 16.9.依赖于ant target的任务

build.gradle

  1. ant.importBuild 'build.xml'
  2. task intro(dependsOn: hello) << {
  3. println 'Hello, from Gradle'
  4. }

gradle intro的输出
> gradle intro
:hello
[ant:echo] Hello, from Ant
:intro
Hello, from Gradle

BUILD SUCCESSFUL

Total time: 1 secs

或者,你可以为ant target添加动作

例 16.10.为Ant target添加动作

build.gradle

  1. ant.importBuild 'build.xml'
  2. hello << {
  3. println 'Hello, from Gradle'
  4. }

gradle hello的输出

> gradle hello
:hello
[ant:echo] Hello, from Ant
Hello, from Gradle

BUILD SUCCESSFUL

Total time: 1 secs

当然,一个ant target也可以依赖于gradle的任务

例 16.11.为Ant target添加动作

build.gradle

  1. ant.importBuild 'build.xml'
  2. task intro << {
  3. println 'Hello, from Gradle'
  4. }

build.xml

  1. <project>
  2. <target name="hello" depends="intro">
  3. <echo>Hello, from Ant</echo>
  4. </target>
  5. </project>

gradle hello的输出

> gradle hello
:intro
Hello, from Gradle
:hello
[ant:echo] Hello, from Ant

BUILD SUCCESSFUL

Total time: 1 secs

有时候可能需要’重命名’ant target以避免与现有的gradle任务冲突.需要使用AntBuilder.importBuilder())方法.

例 16.12.重命名导入的ant target

build.gradle

  1. ant.importBuild('build.xml') { antTargetName ->
  2. 'a-' + antTargetName
  3. }

build.xml

  1. <project>
  2. <target name="hello">
  3. <echo>Hello, from Ant</echo>
  4. </target>
  5. </project>

gradle a-hello的输出

> gradle a-hello
:a-hello
[ant:echo] Hello, from Ant

BUILD SUCCESSFUL

Total time: 1 secs

注意,方法的二个参数应该是一个TransFormer,在Groovy编程的时候,由于Groovy的支持自动闭包单抽象方法的类型。我们可以简单地使用闭包取代匿名内部类,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文