【问题标题】:How to change the jar filename when upload to artifactory via gradle通过gradle上传到artifactory时如何更改jar文件名
【发布时间】:2016-05-11 08:51:07
【问题描述】:

我正在使用 gradle 将 jar 上传到工件。 我设法做到了,但是我试图更改 jar 文件名,但它并没有真正让我这样做。

我正在使用 shadowJar 进行打包。我就是这样做的:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'idea'
apply plugin: 'maven-publish'
apply plugin: 'com.github.johnrengelman.shadow'



    shadowJar {
        classifier = ''
        baseName = 'com.mycompany.app-all'
        manifest {
            attributes 'Main-Class': 'com.mycompany.app.main.starter'
        }
    }


publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.shadow

            groupId 'com.mycompany'
            artifactId "app"
            version "${build_version}"
        }
    }
}

现在如果 build_version=2.1,artifactory 上的目录将如下所示:

http://repo.address:8081/artifactory/libs-release-local/com/mycompany/app/2.1/app-2.1.jar

我想保留文件夹结构但更改 jar 文件名(在 shadowJar 中定义)

并以这种方式拥有它:

http://repo.address:8081/artifactory/libs-release-local/com/mycompany/app/2.1/com.mycompany.app-all.jar

有什么想法吗?

【问题讨论】:

    标签: gradle build artifactory


    【解决方案1】:

    Jar 任务默认命名约定是

    [baseName]-[appendix]-[version]-[classifier].[extension]
    

    如果您只设置基本名称,其余的值会附加到它上面。要覆盖,请设置 archiveName 而不是 baseName

    shadowJar {
        ...
        archiveName = 'com.mycompany.app-all'
        ...
    }
    

    要更改正在发布的工件的命名:

    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.shadow
    
                groupId 'com.mycompany'
                artifactId 'com.mycompany.app-all' //<-- changed here
                version ''                         // and here
            }
        }
    }
    

    【讨论】:

    • 它没有成功。我仍然在工件中有以下文件:repo.address:8081/artifactory/libs-release-local/com/mycompany/…
    • archiveName 按预期更改了文件名 - 但仅限于本地!发布后,它立即更改为我在下面指定的格式:上传:com/mycompany/app/2.4/app-2.4.jar 到存储库远程
    • 当我检查 artifactory 上的 jar 时,我注意到它排除了我的 web/resources 模块下的所有内容。知道如何重构代码并包含它吗?
    • @rage 你让它工作了吗?愿意分享一个工作版本吗?
    • 我也在寻找或类似的解决方案 - 按照旧版 Teamcity 部署作业的预期更改我的 tar 文件名。有人对此有解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2016-11-09
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多