Gradle:默认配置是什么?如何更改
当我运行“依赖项”任务时,有几个部分:编译、运行时、测试编译 其中一个部分是“默认-默认工件的配置”。这个部分是什么,它的用途是什么 如何更改“默认配置”中的内容Gradle:默认配置是什么?如何更改,gradle,Gradle,当我运行“依赖项”任务时,有几个部分:编译、运行时、测试编译 其中一个部分是“默认-默认工件的配置”。这个部分是什么,它的用途是什么 如何更改“默认配置”中的内容 详细信息:Gradle 1.7除非您的构建发布的是Ivy模块,默认配置主要与处理多项目构建中的项目依赖关系相关。给定一个包含项目a和B的多项目构建,如果a在没有明确命名配置(例如,依赖项{compile project(“:B”)})的情况下声明了对B的项目依赖,a(更准确地说,a的编译配置)将依赖于项目B的默认配置。换句话说,依赖项
详细信息:Gradle 1.7除非您的构建发布的是Ivy模块,
默认配置主要与处理多项目构建中的项目依赖关系相关。给定一个包含项目a和B的多项目构建,如果a在没有明确命名配置(例如,依赖项{compile project(“:B”)}
)的情况下声明了对B的项目依赖,a(更准确地说,a的编译
配置)将依赖于项目B的默认
配置。换句话说,依赖项{compile project(“:B”)}
是依赖项{compile project(路径:“:B”,配置:“default”)}
的快捷方式
默认
配置是从运行时
配置扩展而来的,这意味着它包含运行时
配置的所有依赖项和工件,以及可能更多的依赖项和工件。您可以用通常的方式添加依赖项和工件(在B的构建脚本中使用依赖项
/工件
块)。或者,B可以声明自定义配置,a可以通过显式命名该配置来依赖该配置(例如依赖项{compile project(路径::B),配置:“myCustomConfig”)}
使用gradle java插件时,“默认”配置从“运行时”、“仅运行时”、“实现”扩展而来
如果您不使用java插件,那么您可以自己这样定义它
configurations {
"default"
}
java插件在此处设置默认配置:
这方面的文档不是很好
“服务”组合构建中的默认工件的示例。
该示例创建了一个子项目,该子项目引用了另一个项目中的依赖项。这在处理复合构建时是必要的,因为只有“默认”组可以依赖
我们使用它从单个项目中获取多个JAR,并在将项目作为复合构建引用时将其作为不同的依赖项使用
apply plugin: 'base'
configurations {
depend
}
dependencies {
depend project(path: ':', configuration: 'ConfWithArtifact')
}
artifacts {
"default" (file: configurations.depend.singleFile) {
builtBy(configurations.depend)
}
}
default
配置实际上是由base
插件创建的,因此您不需要自己定义它
我也遇到过仅从默认配置合成合成构建的问题,但我的解决方法略有不同:
plugins {
id 'base'
}
configurations {
bootstrap
it.'default'.extendsFrom bootstrap
}
dependencies {
bootstrap project(path: ':other', configuration: 'otherConfiguration')
}
这种方法允许:other
项目中的工件保留其可传递的依赖项,前提是您有兴趣保留它们。我仍然想知道您是否可以将默认配置设置为“runtime”以外的其他设置。我没有完全理解。所以runtime=default?你有这方面的来源吗?我一直在寻找有关此default
配置的一些文档,但尚未找到任何。添加了指向配置设置位置的链接。关于这方面的文档非常糟糕:(.在复合构建中是如何处理的?我添加了一个来自我以前工作过的项目的示例。