在
build.gradle脚本中定义任务时,
task将调用方法中的一种(共4种)-您可以在此处看到第一个方法。您还可以看到,这些方法都没有与DSL匹配的,您在DSL中定义了任务
build.gradle。为什么?因为在执行之前会先
build.gradle评估所有内容,以
将 DSL 转换
为适当的方法调用。有关更多详细信息,请查看此问题。
提到的机制在自定义插件中不起作用-在这里,代码无需 翻译 就可以 按原样
解释。如您所见,在类上没有定义任何方法。要在插件中创建任务,您需要调用上述方法,例如:
__
sourcesJar``Project``task
task('sourcesJar', type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource}确切地调用此方法(我知道参数顺序不同,但这是常规的工作方式-
相信我)。
另外你不需要
project.configure(project) {...},project.with {...}就足够了。


