当我运行“依赖项”任务时,有几个部分:编译、运行时、testCompile ...
其中一个部分是“默认 - 默认工件的配置”。这部分是什么,它的用途是什么?
如何更改“默认配置”中的内容?
详细信息: Gradle 1.7
当我运行“依赖项”任务时,有几个部分:编译、运行时、testCompile ...
其中一个部分是“默认 - 默认工件的配置”。这部分是什么,它的用途是什么?
如何更改“默认配置”中的内容?
详细信息: Gradle 1.7
除非您的构建发布 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") }
.
使用 gradle java 插件时,'default' 配置 extendsFrom 'runtime', 'runtimeOnly', 'implementation'
如果您不使用 java 插件,那么您可以像这样自己定义它
configurations {
"default"
}
该领域的文档不是很好。
从复合构建中“提供”默认工件的示例。该示例创建了一个引用另一个项目中的依赖项的子项目。在使用复合构建时,这可能是必要的,因为只能依赖“默认”组。
我们使用它从单个项目中获取许多 jar,并在将项目引用为复合构建时将其作为不同的依赖项提供服务。
apply plugin: 'base'
configurations {
depend
}
dependencies {
depend project(path: ':', configuration: 'ConfWithArtifact')
}
artifacts {
"default" (file: configurations.depend.singleFile) {
builtBy(configurations.depend)
}
}
default
配置实际上是由插件创建的base
,因此您无需自己定义。
我也遇到了仅从配置中进行复合构建的问题default
,但我的解决方法略有不同:
plugins {
id 'base'
}
configurations {
bootstrap
it.'default'.extendsFrom bootstrap
}
dependencies {
bootstrap project(path: ':other', configuration: 'otherConfiguration')
}
这种方法允许:other
项目中的工件保留其传递依赖关系,假设您有兴趣保留它们。