提问人:hannes ach 提问时间:9/9/2021 更新时间:4/22/2022 访问量:133
使用 Gradle 7.2 的 Maven api pulish
Maven api pulish with Gradle 7.2
问:
我想在 jitpack.io 中发布 Android,但缺少依赖项,这就是我使用 Gradle 7.2 的原因api
project.afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
pom {
configurations.api.getDependencies().each { dep -> addDependency(dep, "compile") }
configurations.implementation.getDependencies().each { dep -> addDependency(dep, "runtime") }
}
}
}
}
}
这适用于 Gradle 6.x,但在 Gradle 7.x 中则失败
configurations.api.getDependencies().each { dep -> addDependency(dep, "compile") }
跟
找不到 org.gradle.api.publish.maven.internal.publication.DefaultMavenPom 类型的对象上的参数 [DefaultProjectDependency{dependencyProject='project ':libs:gvr'', configuration='default'}] 的方法 addDependency()。
有人知道如何解决它吗?
答:
0赞
EpicPandaForce
4/22/2022
#1
使用此代码片段
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
artifact(sourcesJar)
// You can then customize attributes of the publication as shown below.
groupId = '[group]'
artifactId = '[artifact]'
version = '[version]'
pom.withXml {
def dependenciesNode = (asNode().get("dependencies") as groovy.util.NodeList).get(0) as groovy.util.Node
def configurationNames = ["implementation", "api"]
configurationNames.forEach { configurationName ->
configurations[configurationName].allDependencies.forEach {
if (it.group != null && it.version != "unspecified") {
def dependencyNode = dependenciesNode.appendNode("dependency")
dependencyNode.appendNode("groupId", it.group)
dependencyNode.appendNode("artifactId", it.name)
dependencyNode.appendNode("version", it.version)
}
}
}
}
}
}
}
评论