从Gradle调用Ant Macrodef

HEL*_*LOX 5 ant macrodef gradle build.gradle

我似乎找不到从Gradle脚本中列出和/或调用Ant Macrodef的方法。《 Gradle用户指南》讨论了Macrodef,但此处未提供任何示例。谁能告诉我如何做到这一点?

目前,我通过执行ant.importBuild任务来导入Ant构建。当Ant目标显示为Gradle任务时,这可以正常工作。但是,我无法列出和/或调用Ant构建中所述的Ant Macrodef。谁能给我答案?

Ole*_*liv 5

您的 build.xml

<project name="test">

    <macrodef name="sayHello">
        <attribute name="name"/>
        <sequential>
            <echo message="hello @{name}" />
        </sequential>
    </macrodef>

</project>
Run Code Online (Sandbox Code Playgroud)

build.gradle

ant.importBuild 'build.xml'

task hello << {
      ant.sayHello(name: 'darling')
}
Run Code Online (Sandbox Code Playgroud)

让我们测试一下

/cygdrive/c/temp/gradle>gradle hello
:hello
[ant:echo] hello darling

BUILD SUCCESSFUL

Total time: 2.487 secs
Run Code Online (Sandbox Code Playgroud)