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

使用mvn deploy上传已有JAR至Artifactory遇执行失败及JAR损坏问题

正确上传已有JAR至Artifactory的Maven方案及问题分析

一、两种方案的问题根源

  • 方案1:mvn deploy:deploy
    Maven的deploy:deploy目标默认依赖package阶段产出的项目构件,单独执行该目标时,Maven无法关联到你主机目录里的外部JAR,也找不到当前项目打包生成的构件,因此会报错“未检测到JAR”导致构建失败。

  • 方案2:mvn jar:jar deploy:deploy
    jar:jar是Maven Jar插件的默认目标,它会基于当前项目的源码目录(如src/main/java)打包生成JAR。你的场景里没有在当前项目下编译源码,插件找不到可打包的class文件,就会生成空JAR,后续deploy:deploy上传的自然就是这个空文件,所以会出现“JAR will be empty”的提示。

二、正确的上传方式

直接使用deploy:deploy-file目标,跳过完整Maven生命周期,指定已有JAR的路径、GAV坐标、Artifactory仓库信息即可,命令示例如下:

mvn deploy:deploy-file \
  -Dfile=/主机目录路径/thejar.jar \
  -DgroupId=你的组ID \
  -DartifactId=你的构件ID \
  -Dversion=版本号 \
  -Dpackaging=jar \
  -DrepositoryId=artifactory仓库ID \
  -Durl=https://你的artifactory地址/仓库名称

参数说明:

  • -Dfile:本地已有JAR的绝对路径
  • -DgroupId/-DartifactId/-Dversion:该JAR在Artifactory中的GAV坐标
  • -DrepositoryId:对应Mavensettings.xml中配置的Artifactory仓库ID(需提前配置好用户名密码)
  • -Durl:Artifactory目标仓库的访问URL

这种方式直接将指定的外部JAR上传至Artifactory,不会生成新构件,也无需依赖项目源码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:42:36