Gradle - 使用 Ant 中的函数
Gradle - using a function from within Ant
我有一个 Gradle 脚本,其中很少调用 XJC 以从 XSD.
生成 JAXB 类
我想我可以参数化这些调用并重用公共代码。
所以我创建了一个函数:
ext.generateJaxbClasses = { HashMap params ->
project.ant {
...
然后我想用它:
task genJaxb {
ext.generic = [
schema: "..."
]
doLast() {
ext.generateJaxbClasses(jaxbSetA)
ext.generateJaxbClasses(jaxbSetB)
}
但是我得到这个错误:
> No signature of method: org.gradle.internal.extensibility.DefaultExtraPropertiesExtension.generateJaxbClasses() is applicable for argument types: (LinkedHashMap) values: [[...]]
如何在任务定义中使用函数?
使用project.ext.generateJaxbClasses(jaxbSetA)
在任务中使用 ext
解析为在任务的扩展容器中搜索 属性。
我建议在项目中使用实际的免费功能而不是使用扩展,因为它会导致这种挫败感。
def generateJaxbClasses(HashMap params) {
project.ant {...}
}
我有一个 Gradle 脚本,其中很少调用 XJC 以从 XSD.
生成 JAXB 类我想我可以参数化这些调用并重用公共代码。
所以我创建了一个函数:
ext.generateJaxbClasses = { HashMap params ->
project.ant {
...
然后我想用它:
task genJaxb {
ext.generic = [
schema: "..."
]
doLast() {
ext.generateJaxbClasses(jaxbSetA)
ext.generateJaxbClasses(jaxbSetB)
}
但是我得到这个错误:
> No signature of method: org.gradle.internal.extensibility.DefaultExtraPropertiesExtension.generateJaxbClasses() is applicable for argument types: (LinkedHashMap) values: [[...]]
如何在任务定义中使用函数?
使用project.ext.generateJaxbClasses(jaxbSetA)
在任务中使用 ext
解析为在任务的扩展容器中搜索 属性。
我建议在项目中使用实际的免费功能而不是使用扩展,因为它会导致这种挫败感。
def generateJaxbClasses(HashMap params) {
project.ant {...}
}