maven deploy上传本地jar至私服

1.场景

首先目前依赖包的管理大多数是maven,其次当使用到第三方的包的时候,官方的仓库或者aliyun的maven都是没有这个包的。那么,为了方便我们使用 我们需要将本地的这个jar上传到 公司内部的私服去,以便大家使用

2. 上操作

我们直接使用maven-deploy插件进行上传

 mvn deploy:deploy-file -DgroupId=xxx.openplatform.shared -DartifactId=sdk.client -Dversion=2.9.0-SNAPSHOT -Dpackaging=jar -DgeneratePom=true -Dfile=./src/main/resources/lib/xx-sdk-java-1.2.0.jar -Durl='http://xxxx:8083/nexus/content/repositories/snapshots/' -DrepositoryId=xxx-snapshots

各参数代表含义为:

groupId: 待上传的jar groupId
artifactId:待上传jar artifactId
version:jar的版本
generatePom: true 表示生成pom
file:表示文件路径 (可以为相对路径或者绝对路径)确保文件存在
url :私服的地址
repositoryId : 私服地址的id

3. 可能会遇到的问题以及解决办法

  • 问题1: 上传失败 Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1]
    原因(1)可能私服已经存在jar 但是私服仓库未配置允许重新部署
    解决:修改私服仓库配置为允许重新部署 如下图
    一般情况 snapshots 版本是允许重新部署的 release版本是不允许的 当然也有例外 release 一般不建议允许重新部署 (线上的稳定版本 如果确认没问题的话 建议升级版本号 在重新执行命令)
    maven deploy上传本地jar至私服_第1张图片
    原因 (2)有可能版本不符,快照版不能选择Release
    maven deploy上传本地jar至私服_第2张图片
    解决:选择对应的 仓库上传

  • 问题二: Return code is: 401, ReasonPhrase:Unauthorized
    未进行配置访问私服的账号密码
    解决:添加私服的账号密码 位置: maven安装位置/conf/settings.xml
    找到servers 标签 并里面 在进行添加内容 如下

<server>
    <id>xxx-snapshotsid>
    <username>adminusername>
    <password>adminpassword>
server>

id要和上传时候指定的repositoryId 相同 不然仍会报错

  • 问题3:私服上的包拉不下来
    解决:idea切换到项目终端 执行如下命令 强制拉取 并且clean install 跳过测试类
mvn -U clean install -DskipTest=true

你可能感兴趣的:(java,maven,jar,java,maven,deploy)