首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Gradle调用Ant宏Ant

从Gradle调用Ant宏Ant
EN

Stack Overflow用户
提问于 2015-05-07 07:45:38
回答 2查看 1.1K关注 0票数 5

我似乎找不到一种方法从我的Gradle脚本中列出和/或调用Ant宏。关于宏防御的分级用户指南会谈,但是这里没有提供一个例子。有人能告诉我如何做到这一点吗?

目前,我通过执行ant.importBuild任务导入Ant构建。这很好,因为Ant目标显示为Gradle任务。但是,我无法列出和/或调用Ant构建中所述的Ant宏。有人能给我答案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-07 08:39:10

你的build.xml

代码语言:javascript
复制
<project name="test">

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

</project>

build.gradle

代码语言:javascript
复制
ant.importBuild 'build.xml'

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

让我们来测试一下

代码语言:javascript
复制
/cygdrive/c/temp/gradle>gradle hello
:hello
[ant:echo] hello darling

BUILD SUCCESSFUL

Total time: 2.487 secs
票数 5
EN

Stack Overflow用户

发布于 2015-08-31 16:53:03

Ant允许不适合Groovy的标识符限制的宏名称。如果是这样的话,显式的invokeMethod调用可能会有所帮助。给予:

代码语言:javascript
复制
<project name="test">

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

</project>

这会起作用的

代码语言:javascript
复制
ant.importBuild 'build.xml'

task hello << {
  ant.invokeMethod('sayHello-with-dashes', [name: 'darling'])
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30094857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档