当前位置: 首页 > java >正文

Gitlab跑CICD的时候,maven镜像和pom.xml使用的maven版本冲突导致没办法build成功的解决方法

是这样的!最近遇到一个非常棘手的难题,我搞了大概2周时间才把他弄出来,因为自己搭了个私服的maven仓库,他不像maven官方仓库一样,可以跟nginx一样转的,所以遇到好几个难点!

第一点:就是maven镜像冲突

解决思路

build:stage: buildimage: maven:3.8.4-openjdk-8tags: [build]cache:key: "$CI_COMMIT_REF_SLUG"paths:- .m2/repository/before_script:    # 创建本地仓库目录- mkdir -p .m2/repository# 复制已有缓存- if [ -d "你项目/m2" ]; then cp -r 你项目/m2/* .m2/repository/ || true; fi

将你本地的.m2/repository的下面所以得依赖包上传到你项目上,我是在我项目下面建立了一个m2文件夹,上传到这里,然后在CICD的yml, build 下的这个before_script 提前复制到,然后建立一个setting.xml文件,用这个跑mvn install命令

    - mvn $MAVEN_CLI_OPTS -f pom.xml -s settings.xml -f pom.xml clean install  -X

这个setting文件要写成这样

<!-- src/main/resources/nexussettings.xml -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>${user.dir}/.m2/repository</localRepository><servers><server><id>nexus-mirror</id><username>账号</username><password>密码</password></server></servers><!-- 配置镜像,替换中央仓库为 Nexus --><mirrors><mirror><id>nexus-mirror</id><url>http://nexus.com:8081/repository/group/</url><mirrorOf>central</mirrorOf></mirror></mirrors>
</settings>

这个mirrors是指,你maven依赖的所有包的请求必须走这个你设置好的mirror的URL

还有这个localRepository是你项目在git上跑CICD的依赖包本地路径

一般都是这样写的!。如果不知道位置,你可以去看你跑CICD 有一个Repository的显示路径,我这个是相对路径,如果要绝对路径也行,自己弄进去!哈哈哈,这样maven不同版本冲突就解决了

http://www.xdnf.cn/news/15432.html

相关文章:

  • mac上的app如何自动分类
  • 图灵在二战期间是如何破译德国军用密码的?
  • 20250715使用荣品RD-RK3588开发板在Android13下接入USB3.0接口的红外相机
  • 第八章,应用题
  • Python 字典 (Dictionary) 详解
  • linux系统------HAProxy 配置
  • Isaac Sim仿真赋能机器人工作流,推动具身智能在机器人领域研究
  • 弗兰肯斯坦式的人工智能与GTM策略的崩溃
  • 【Qt】 设计模式
  • 云蝠智能赋能呼入场景——重构企业电话服务
  • 可下载或通过爬虫获取疾病相关数据的网站及平台,涵盖临床数据、基因关联、药品信息等方向,并附注数据特点与获取方式:(不公开)
  • Process Lasso:提升电脑性能的得力助手
  • (3)从零开发 Chrome 插件:网页图片的批量下载
  • 辨析git reset三种模式以及和git revert的区别:回退到指定版本和撤销指定版本的操作
  • 【Ubuntu22.04】repo安装方法
  • 基于STM32的智能火灾报警系统设计
  • AI|大模型入门(六):GPT→盘古,国内外大模型矩阵速览
  • kotlin布局交互
  • 响应式编程入门教程第三节:ReactiveCommand 与 UI 交互
  • 【PTA数据结构 | C语言版】创建哈夫曼树
  • 医疗数据分析中标准化的作用
  • Java项目:基于SSM框架实现的学生档案管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
  • 剑指offer62_骰子的点数
  • Vue3入门-指令
  • brupsuite使用中遇到的一些问题(bp启动后浏览器无法连接)/如何导入证书
  • 智能体技术深度解析:从概念到企业级搭建指南
  • 安全参綉25暑假第一次作业
  • Student后台管理系统查询接口
  • CentOS服务器安装Supervisor使队列可以在后台运行
  • GAMES101 lec2-数学基础1(线性代数)