我正在创建一个gradle插件。在我的插件中,我添加了一个新配置:
project.getConfigurations().create("custom");
“自定义”配置中的所有依赖项都具有扩展“自定义”。如果我声明我的依赖关系:
dependencies {
custom group: 'my-custom', name: 'my-custom', version: '1.0.00'
}
它将失败并显示错误消息:
Could not resolve all files for configuration ':custom'.
> Could not find my-custom:my-custom:1.0.00.
Searched in the following locations:
file:.../my-custom-1.0.00.jar
请注意'.jar'扩展名。我需要明确设置扩展名如下:
dependencies {
custom group: 'my-custom', name: 'my-custom', version: '1.0.00', ext: 'custom'
}
但是,如果他们必须始终指定扩展名,则用户体验不是很好。是否可以将配置的默认扩展名更改为“自定义”。这样,如果扩展名与默认扩展名不同(在本例中为'.custom'),用户只需要明确指定扩展名。
答案 0 :(得分:1)
不幸的是,这似乎并未得到完全支持,理想情况下,这将以与此处所述类似的方式完成:https://github.com/gradle/gradle/issues/1340(将configurations.all
替换为configurations.custom
,{{1}而不是ext
)
对于解决方法和hack,您可以创建一个闭包/方法来附加ext并添加到自定义配置:
classifier
对于插件,您可以将其放在项目ext中,并将其命名为configurations { custom }
def cust = { project.dependencies.custom it << [ext: it.ext?:'custom'] }
dependencies {
cust group: 'my-custom', name: 'my-custom', version: '1.0.00'
cust group: 'my-custom', name: 'no-custom', version: '1.0.00', ext: 'override'
}
//note this also works outside dependencies, its not actually used
cust group: 'my-custom', name: 'oh-no-custom', version: '1.0.00'
,而不是实际的配置名称。