如果我理解正确,那么Gradle的compileOnly
依赖项就对应于Gradle的旧provided
,同时也对应于Maven POM的provided
。它在Gradle世界中完美运行。
但是,compileOnly
在provided
生成的pom.xml
中不会生成任何maven-publish
依赖项。
我们正在使用Gradle将Maven Artifact 发布到Maven Central。我们想在Gradle的provided
中已发布的pom.xml
中明确声明compileOnly
。
有谁知道有没有简单的方法可以做到这一点?或者,我们是否需要在以下代码中编写我们自己的Gradle脚本:
publishing {
publications {
maven(MavenPublication) {
pom {
/* Our own Gradle scripting to declare provided dependencies. */
}
}
}
}
最佳答案
我知道我们可以通过如下所示编写脏脚本来对其进行调整,但是我们基本上不希望尽可能在build.gradle
中“编写脚本”。
publishing {
publications {
maven(MavenPublication) {
pom {
withXml {
project.configurations.compileOnly.allDependencies.each { dependency ->
asNode().dependencies[0].appendNode("dependency").with {
it.appendNode("groupId", dependency.group)
it.appendNode("artifactId", dependency.name)
it.appendNode("version", dependency.version)
it.appendNode("scope", "provided")
}
}
}
}
}
}
}
关于java - 从Gradle “provided”在pom.xml中生成Maven “compileOnly”依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63372385/