【问题标题】:Downloading only a POM file from Maven/JFrog repository仅从 Maven/JFrog 存储库下载 POM 文件
【发布时间】:2021-01-21 18:16:01
【问题描述】:

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

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

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

并将 myConf(iguration) 的传递标志设置为 false。

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

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

也许您知道如何在 Gradle 中使用元数据实现混淆 jar 的发布?

【问题讨论】:

    标签: maven gradle gradle-dependencies


    【解决方案1】:

    您可以使用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 闭包。

    【讨论】:

    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多