我在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文件中,我在这里遗漏了什么吗?
答案 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