You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle 3.5执行artifactoryPublish成功但未上传JAR到Artifactory问题求助

问题原因及修复方案

你目前只成功上传了构建过程的元数据,没有上传JAR包,是因为缺少以下两处核心配置:

  • 缺少生成JAR包的对应插件配置
    你的配置里没有应用java插件,Gradle不会自动执行JAR构建逻辑,没有JAR产物自然无法上传。需要在build.gradle中添加对应插件配置:
    apply plugin: 'java'
    
  • 缺少Artifactory发布的构件指定配置
    你使用的3.1.1版本Artifactory插件不会自动拾取项目生成的JAR构件,必须在artifactory.publish块中明确指定要上传的内容,需要补充defaults配置块,可选两种配置方式:
    方式一:直接指定JAR任务产物,适合单JAR的简单场景
    artifactory {
        contextUrl = "xxxxxxxxx"
        publish {
            repository {
                repoKey = 'repokey1'
                username = "xxxxxxx"
                password = "xxxxxx" 
            }
            // 新增以下配置
            defaults {
                // 直接指定上传jar任务的输出产物
                artifacts jar
            }
        }
        // 原有resolve配置保持不变即可
    }
    
    方式二:配合maven-publish插件定义发布内容,适合多构件、需要生成pom文件的场景
    先应用maven-publish插件:
    apply plugin: 'maven-publish'
    
    再定义发布内容,关联到Artifactory配置:
    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
            }
        }
    }
    
    artifactory {
        contextUrl = "xxxxxxxxx"
        publish {
            repository {
                repoKey = 'repokey1'
                username = "xxxxxxx"
                password = "xxxxxx" 
            }
            defaults {
                // 引用上面定义的maven发布内容
                publications 'mavenJava'
            }
        }
    }
    

配置修改完成后,建议执行完整的构建+发布命令,同时开启info日志确认上传细节:

gradle build artifactoryPublish -i

执行后如果日志中出现类似Deploying artifact: http://xxx/repokey1/xxx/xxx.jar的输出,就说明JAR已经成功上传,直接去你配置的repokey1仓库对应的路径下找JAR即可,不需要访问build元数据的接口地址。

内容的提问来源于stack exchange,提问作者Sage Harpuia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 00:27:02