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

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.lryc.cn/news/589221.html

相关文章:

  • 【C#地图显示教程:实现鼠标绘制图形操作】
  • jmeter之随机读取csv文件
  • jmeter提取接口返回值,对比去重
  • 说下对mysql MVCC的理解
  • LeetCode|Day13|88. 合并两个有序数组|Python刷题笔记
  • 记录一条面试sql题目
  • 《每日AI-人工智能-编程日报》--2025年7月15日
  • vue实现el-table-column中自定义label
  • 对象数组列表转成树形结构--树形结构转成列表(处理菜单)
  • 牛客:HJ21 简单密码[华为机考][哈希]
  • T8332AD这是一款多拓扑芯片质量很硬朗?
  • 【jvm|基本原理】第四天
  • 力扣 hot100 Day45
  • LeetCode Hot100 【1.两数之和、2.两数相加、3.无重复字符的最长子串】
  • 拼多多笔试题目一
  • 人机协作系列(四)AI编程的下一个范式革命——看Factory AI如何重构软件工程?
  • 力扣——1071. 字符串的最大公因子
  • 基于Alpine构建MySQL镜像
  • sublime如何支持换行替换换行
  • PHP安全漏洞深度解析:文件包含与SSRF攻击的攻防实战
  • Azure FXmsv2 系列与 Azure FXmdsv2 系列虚拟机正式发布
  • 606. 二叉树创建字符串
  • Java全栈工程师面试实录:从电商支付到AI大模型的应用场景与技术栈解析
  • Android 获取 UserAgent (UA) 的三种方式深度解析:差异、风险与最佳实践
  • C++中的模板参数 vs 函数参数:编译期与运行期的分界线
  • X 射线探伤证考试核心:辐射安全基础知识点梳理
  • 如何正确分配及设置香港站群服务器IP?
  • 创客匠人:创始人 IP 的破局思维,重构知识变现的深层逻辑
  • LeetCode--46.全排列
  • 梳理Bean的创建流程