在答案https://stackoverflow.com/a/35879150中,最后一行有一个with
:
task gen (type: Jar) {
description "Generates JAR without version number."
archiveName = filename + ".jar"
manifest {attributes 'Main-Class': mainFile}
with jar
}
确切含义是什么,它在哪里记录?我在gradle文档中找不到它,并且groovy中的with
(http://groovy-lang.org/style-guide.html#_using_with_for_repeated_operations_on_the_same_bean)似乎有所不同。
答案 0 :(得分:3)
在您的情况下,您正在调用with()
类的Jar
- 方法。 (请参阅Jar DSL documentation和Jar API documentation)
将给定的规格添加为此规范的子项。
所以,它是不 Groovy的with()
- 方法。
答案 1 :(得分:1)
在这种情况下使用with
,您似乎调用了名为jar
的闭包:
jar {
baseName filename
manifest {
attributes 'Main-Class': mainFile
}
}
task gen (type: Jar) {
//....
with jar
}
在运行时(调用构建器时),它将转换为:
task gen (type: Jar) {
//....
jar {
baseName filename
manifest {
attributes 'Main-Class': mainFile
}
}
}