Calling Ant Macrodef from Gradle



我似乎找不到从我的gradle脚本中列出和/或调用ant macrodef的方法。Gradle用户指南讨论了Macrodefs,但并未提供任何示例。谁能告诉我如何完成此操作?

目前,我通过执行ant.importbuild任务导入蚂蚁构建。当蚂蚁目标显示为Gradle任务时,这正常工作。但是,我无法列出和/或调用蚂蚁构建中所述的蚂蚁摩克洛德犬。谁能给我答案?

您的build.xml

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

build.gradle

ant.importBuild 'build.xml'
task hello << {
      ant.sayHello(name: 'darling')
}

让我们测试

/cygdrive/c/temp/gradle>gradle hello
:hello
[ant:echo] hello darling
BUILD SUCCESSFUL
Total time: 2.487 secs

ant允许不适合Groovy标识符限制的宏名称。如果是这种情况,则明确的invokeMethod调用可以帮助您。给定:

<project name="test">
<macrodef name="sayHello-with-dashes">
    <attribute name="name"/>
    <sequential>
        <echo message="hello @{name}" />
    </sequential>
</macrodef>
</project>

这将起作用

ant.importBuild 'build.xml'
task hello << {
  ant.invokeMethod('sayHello-with-dashes', [name: 'darling'])
}

相关内容

  • 没有找到相关文章

最新更新