我在 gradle 中使用 maven-publish
插件来发布 Artifact 。我需要生成一个包含依赖项的 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 文件中,我在这里遗漏了什么吗?
最佳答案
在网上搜索了几个小时后,我才意识到你包含的 POM 文件的属性也发生了变化。
现在变成了
//for implementation dependencies
configurations.implementation.allDependencies.each { ... }
//for api dependencies
configurations.api.allDependencies.each { ... }
但是,
configurations.implementation.allDependencies.each { ... }
似乎已经在 POM 文件中包含 api
依赖项。
关于android - Maven-Publish 不在 POM 中发布 API/实现依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49664179/