我只想获取/下载!从正确发布的工件(带有元数据)生成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
闭包。