codecamp

Gradle 导入一个 Ant 构建

导入一个Ant构建

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

例 16.8.导入ant构建

build.gradle

ant.importBuild 'build.xml'

build.xml

<project>
    <target name="hello">
        <echo>Hello, from Ant</echo>
    </target>
</project>

gradle hello的输出

>\> gradle hello
>:hello
>[ant:echo] Hello, from Ant
>
>BUILD SUCCESSFUL
>
>Total time: 1 secs

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

build.gradle

ant.importBuild 'build.xml'

task intro(dependsOn: hello) << {
    println 'Hello, from Gradle'
}
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

ant.importBuild 'build.xml'

hello << {
    println 'Hello, from Gradle'
}

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

ant.importBuild 'build.xml'

task intro << {
    println 'Hello, from Gradle'
}

build.xml

<project>
    <target name="hello" depends="intro">
        <echo>Hello, from Ant</echo>
    </target>
</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()](https://docs.gradle.org/current/javadoc/org/gradle/api/AntBuilder.html#importBuild(java.lang.Object, org.gradle.api.Transformer))方法.

例 16.12.重命名导入的ant target

build.gradle

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

build.xml

<project>
    <target name="hello">
        <echo>Hello, from Ant</echo>
    </target>
</project>

gradle a-hello的输出

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

BUILD SUCCESSFUL

Total time: 1 secs

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

Gradle 在构建中使用自定义 Ant 任务
Gradle API
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Gradle 使用 Ant 插件

Gradle 使用 Ant 任务和 Ant 类型的构建

Gradle 导入一个 Ant 构建

Gradle Ant 的属性与引用

Gradle API

Gradle Gradle Plugins

Gradle 使用构建脚本块应用插件

Gradle 查找社区插件

Gradle 更多关于插件

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }