更改默认的gradle依赖文件扩展名

时间:2018-05-22 22:59:27

标签: gradle plugins

我正在创建一个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'),用户只需要明确指定扩展名。

1 个答案:

答案 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' ,而不是实际的配置名称。