Maven-Publish不会在POM

时间:2018-04-05 04:28:38

标签: android gradle maven-publish

我在gradle中使用maven-publish插件来发布工件。我需要生成一个包含依赖项的POM文件,以便我的使用者可以获取所需的依赖项。

由于maven-publish默认情况下不包含对POM文件的依赖,因此我必须使用

pom.withXml {
            def dependenciesNode = asNode().appendNode('dependencies')
            configurations.compile.allDependencies.each {
                def dependencyNode = dependenciesNode.appendNode('dependency')
                dependencyNode.appendNode('groupId', it.group)
                dependencyNode.appendNode('artifactId', it.name)
                dependencyNode.appendNode('version', it.version)
                dependencyNode.appendNode('scope', 'compile')
            }
        }

在我将关键字compile换成apiImplementation之前,我一切正常。 发布的POM不包含任何依赖关系,使用关键字apiImplementation。我不得不使用compile将它包含在POM文件中,我在这里遗漏了什么吗?

2 个答案:

答案 0 :(得分:2)

经过几个小时的在线搜索后,我才意识到您包含POM文件的属性也已更改。

现在变成了

//for implementation dependencies
configurations.implementation.allDependencies.each { ... }

//for api dependencies
configurations.api.allDependencies.each { ... }

然而,

configurations.implementation.allDependencies.each { ... }

似乎已在POM文件中包含api个依赖项。

答案 1 :(得分:0)

你可以简单地跳过范围部分,你几乎没有遇到范围的maven依赖。 ':d