Map如何在生成的pom(generatePom ...)中将“compileOnly”gradle“提供”

时间:2017-11-23 12:25:15

标签: maven gradle

我正在使用gradle 4.3.1当我发布到maven时,我在范围compileOnly中有依赖项我发现这些依赖项不在pom文件中。

我想将它们映射到maven的provided范围。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

我不知道任何干净的解决方案(maven-publish插件仍在孵化),所以我从https://stackoverflow.com/a/25201395/2838501中获取灵感,并且有一个肮脏的解决方案:

publications {
    mavenJava(MavenPublication) {
        from components.java

        pom.withXml {
            project.configurations.compileOnly.allDependencies.each { dep ->
                asNode().dependencies[0].appendNode('dependency').with {
                    it.appendNode('groupId', dep.group)
                    it.appendNode('artifactId', dep.name)
                    it.appendNode('version', dep.version)
                    it.appendNode('scope', 'provided')
                }
            }

        }
    }
}