仅从Maven/JFrog存储库下载POM文件



我只想获取/下载!从正确发布的工件(带有元数据)生成POM文件。

编写一个只下载jar的任务很容易

task getArtifacts(type: Copy) {
from configurations.myConf
into myWorkingDir
}

和设置myConf(configuration)的传递标志为false。

但是如何下载相关的POM文件才行!

这样做的真正原因是:我混淆了下载的jar,然后将它们作为一个混淆的版本部署回存储库。但是我想在发布之前使用artifacts.add(xxx.pom)为混淆的工件提供pom元数据。

也许你知道任何其他的想法如何实现在Gradle与元数据混淆的jar的发布?

您可以使用ArtifactResolutionQuery手动解析特定类型的工件:

def result = dependencies.createArtifactResolutionQuery()
.forModule('group', 'name', 'version')
.withArtifacts(JvmLibrary, MavenPomArtifact)
.execute()
for (component in result.resolvedComponents) {
component.getArtifacts(MavenPomArtifact).each { println it.file }
}

我不确定实际的工件是否也可以用这种方法解决,但是您可以只使用POM文件的路径。请注意,您应该在执行阶段调用此功能,通过使用@TaskAction定义新任务类型或使用doFirst/doLast闭包。

最新更新