从Gradle调用Ant Macrodef
我似乎找不到从Gradle脚本中列出和/或调用Ant宏定义的方法。Gradle用户指南介绍了Macrodefs,但此处未提供示例。有人能告诉我如何做到这一点吗从Gradle调用Ant Macrodef,ant,gradle,build.gradle,macrodef,Ant,Gradle,Build.gradle,Macrodef,我似乎找不到从Gradle脚本中列出和/或调用Ant宏定义的方法。Gradle用户指南介绍了Macrodefs,但此处未提供示例。有人能告诉我如何做到这一点吗 目前,我通过执行Ant.importBuild任务导入Ant构建。当蚂蚁目标显示为渐变任务时,这种方法效果很好。但是,我无法列出和/或调用Ant构建中声明的Ant宏定义。有人能给我提供答案吗?你的build.xml <project name="test"> <macrodef name="sayHello"&
目前,我通过执行Ant.importBuild任务导入Ant构建。当蚂蚁目标显示为渐变任务时,这种方法效果很好。但是,我无法列出和/或调用Ant构建中声明的Ant宏定义。有人能给我提供答案吗?你的
build.xml
<project name="test">
<macrodef name="sayHello">
<attribute name="name"/>
<sequential>
<echo message="hello @{name}" />
</sequential>
</macrodef>
</project>
让我们测试一下
/cygdrive/c/temp/gradle>gradle hello
:hello
[ant:echo] hello darling
BUILD SUCCESSFUL
Total time: 2.487 secs
Ant允许使用不符合Groovy标识符限制的宏名称。 如果是这种情况,显式
invokeMethod
call会有所帮助。
鉴于:
这会奏效的
ant.importBuild 'build.xml'
task hello << {
ant.invokeMethod('sayHello-with-dashes', [name: 'darling'])
}
ant.importBuild'build.xml'
任务您好,解决方案对您有效吗?如果是,您可能会接受它。虽然此解决方案不能完全解决我的问题,但这是/a在Gradle中调用Ant macrodefs的方法。我找不到调用宏定义的方法是因为我的宏定义名称包含几个“-”字符,Gradle无法处理。你知道列出所有加载的宏定义的方法吗?@HELOX不,我没有找到列出它们的方法
<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'])
}