集册 Gradle 官中文方用户指南 导入一个 Ant 构建

导入一个 Ant 构建

—— 导入一个Ant构建

欢马劈雪     最近更新时间:2020-08-04 05:37:59

253

你可以在你的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

展开阅读全文