我正在使用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换成api或Implementation之前,一切对我来说都很好。发布的POM不包含任何依赖关系,使用关键字api或Implementation。我不得不使用compile使它包含在POM文件中,这里我遗漏了什么吗?
发布于 2018-04-05 13:26:52
在网上搜索了几个小时后,我才意识到你包含的POM文件的属性也改变了。
现在它变成了
//for implementation dependencies
configurations.implementation.allDependencies.each { ... }
//for api dependencies
configurations.api.allDependencies.each { ... }然而,
configurations.implementation.allDependencies.each { ... }似乎已经在POM文件中包含了api依赖项。
发布于 2018-04-05 12:47:06
您可以简单地跳过作用域部分,您几乎不会遇到maven与作用域的依赖关系。':D
https://stackoverflow.com/questions/49664179
复制相似问题