我想按类型分隔项目中的依赖项,并考虑通过以下方式这样做:
// Implementation dependencies
dependencies {
implementation("foo:bar:1") {
because("reason 1")
}
implementation("foo:bar:2") {
because("reason 2")
}
implementation("foo:bar:3") {
because("reason 3")
}
}
// Test implementation dependencies
dependencies {
testImplementation("foo:bar:4") {
because("reason 4")
}
testImplementation("foo:bar:5") {
because("reason 5")
}
}
问题:
我可以通过这种方式构建了构建文件之后,就可以构建项目,但是我看不到任何权威材料说明正式支持指定多个dependencies
块。是否存在这种材料?
是否有比此方法更好的按类型分隔依赖项的方法?最好,我希望每个模块都有一个依赖项配置(implementation
,testImplementation
等),以便像上面的配置那样记录包括每个模块的原因。
我看不到任何权威材料说明正式支持指定多个
dependencies
块。是否存在这种材料?
不需要任何材料,因为Gradle DSL(Groovy或Kotlin)不是什么特别的或不可思议的东西。它只是Gradle API上的糖。
指定多个dependencies
块是完全合法的。如果要对Gradle DSL进行除糖,则实际上只是在调用多个dependencies
块:
project.getDependencies().add("implementation", "foo:bar:1")
project.getDependencies().add("testImplementation", "foo:bar:4")
与简单地多次在add(...)
上调用List
方法没有什么不同。
是否有比这更优选的按类型分隔依赖关系的方法?
创建一个将依赖项捆绑在一起的库(项目或子项目)。使用Java Library Plugin可以轻松实现。例如,对于您的测试库:
dependencies {
api("foo:bar:4") {
because("reason 4")
}
api("foo:bar:5") {
because("reason 5")
}
}
然后简单地使用主项目中的库:
dependencies {
testImplementation(project(":my-test-library")) {
because("bundles test libs")
}
}