关于本地打包成功,k8s打包失败的问题

1.现象

在本地打包成功,也可以运行成功。但是在k8s打包失败。然后看流水线,查看打包命令:mvn clean package -Dmaven.test.skip=true

2.原因分析

maven 命令打包,一般设置的不是强制更新策略。因此会拉取本地仓库的包。但是一旦该包内容更改,并deploy到远程仓库,最新包虽然在远程仓库。但是依然还是有这这问题。因此有2种方案,要么清除服务器的本地仓库。要么升级版本包,然后升级依赖该包的项目。(这个比较麻烦)

还有个潜在的问题,就是这个包只要更新,都要修改其他项目包,非常麻烦。

命令打包:

mvn install:install-file -Dfile=sdk-park-manage-V13.0.jar -DgroupId=com.pross.sdk -DartifactId=sdk-park-manage -Dversion=13.0-Release -Dpackaging=jar
mvn deploy:deploy-file -DgroupId=com.pross.sdk \
  -DartifactId=sdk-park-manage \
  -Dversion=13.0-Release \
  -Dpackaging=jar \
  -Dfile=sdk-park-manage-V13.0.jar \
  -DrepositoryId=zhqc \
  -Durl=http://XXXX:7181/repository/maven-releases/

3.解决方案

a.用SNAPSHOT作为版本

  1. 修改版本号为-SNAPSHOT结尾
  2. 被依赖方手动deploy到私库
  3. 依赖方无需处理,构建时会自动拉取最新依赖
  • SNAPSHOT:引用版本为SNAPSHOT的依赖时,每次构建应用时都会重新下载依赖。

 

  • RELEASE:如果发现本地已有这个版本,就不会去远程下载。

注意问题:再部署时有可能会发现部署报错

 status: 400 Repository version policy: RELEASE does not allow metadata in path

这个错的原因就是:你部署的私服仓库的。设置的版本策略为Release。需要删除仓库,重新创建仓库,在版本策略选择上选择Snapshot 或者Mixed 。另一种办法就是设置jar包的RELEASE结尾。还要修改设置(pom.xml或者settings.xml),将repository和pluginRepository的updatePolicy改为alway。

b.升级版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值