如何将同一行中的多个依赖项分组-Gradle



在下面的示例中,我有3个具有相同组和相同版本的依赖项。我想将这三个依赖项分组在一行中。

compile group: 'org.apache.ws.commons.axiom', name: 'axiom-api', version: '1.2.7'
compile group: 'org.apache.ws.commons.axiom', name: 'axiom-dom', version: '1.2.7'
compile group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.7'

预期低于

group("axiom-api", "axiom-dom", "axiom-impl", :under=>"org.apache.ws.commons.axiom", :version=>"1.2.7")

gradle中可能吗?

实际上总共有更多的行,但如果这(同一组、同一版本和多个工件(是一种重复模式,它可能仍然很方便:

def groupDependencies ( group, names, version ) {
def deps = []
names.each { it -> 
deps += [group: group, name: it, version: version]
}
return deps
}
dependencies {
compile(groupDependencies('org.apache.ws.commons.axiom', ['axiom-api', 'axiom-dom', 'axiom-impl'], '1.2.7'))
}

这是一个可以添加不同工件的示例,每个工件都有不同的版本。

def groupDependencies (group, artifact) {
def dependencies = []
artifact.each { it ->
dependencies += [group: group, name: it["name"], version: it["version"]]
}
return dependencies
}
dependencies {
implementation(groupDependencies("org.apache.commons", [
[name: "commons-lang3", version: "3.12.0"],
[name: "commons-collections4", version: "4.4"],
[name: "commons-compress", version: "1.21"]
]))
}

另一个是当组和名称相同时(你可以在同一个文件上使用它们(:

def groupDependencies (artifact) {
def dependencies = []
artifact.each { it ->
dependencies += [group: it["name"], name: it["name"], version: it["version"]]
}
return dependencies
}
dependencies {
implementation(groupDependencies([
[name: "commons-cli", version: "1.5.0"],
[name: "commons-io", version: "2.11.0"]
]))
}

最新更新