当我运行“dependencies”任务时,有几个部分:compile,runtime,testCompile ......
其中一个部分是“默认 - 默认工件的配置”。这部分是什么以及它用于什么?
如何更改“默认配置”中的内容?
详细信息: Gradle 1.7
答案 0 :(得分:23)
除非您的构建是发布Ivy模块,否则default
配置在多项目构建中处理项目依赖项时主要相关。给定项目A和B的多项目构建,如果A在没有明确命名配置的情况下声明项目依赖于B(例如dependencies { compile project(":B") }
,则A(更准确地说是A compile
配置)将取决于项目B的default
配置。换句话说,dependencies { compile project(":B") }
是dependencies { compile project(path: ":B", configuration: "default") }
的快捷方式。
default
配置从runtime
配置扩展,这意味着它包含runtime
配置的所有依赖项和工件,可能还有更多。您可以通常的方式添加依赖项和工件(在B的构建脚本中使用dependencies
/ artifacts
块)。或者,B可以声明自定义配置,A可以通过明确命名该配置来依赖于此(例如dependencies { compile project(path: ":B", configuration: "myCustomConfig") }
。
答案 1 :(得分:2)
使用gradle java插件时,'default'配置extendsFrom'runtime','runtimeOnly','implementation'
如果您不使用java插件,那么您可以像这样自己定义
configurations {
"default"
}
该领域的文档并不是那么好。
答案 2 :(得分:0)
default
配置实际上是由base
插件创建的,因此您无需自己定义它。
我也遇到了仅从default
配置进行合成的复合版本的问题,但我解决的方式略有不同:
plugins {
id 'base'
}
configurations {
bootstrap
it.'default'.extendsFrom bootstrap
}
dependencies {
bootstrap project(path: ':other', configuration: 'otherConfiguration')
}
这种方法允许:other
项目中的工件保留其传递依赖关系,前提是您有兴趣保留它们。