写点什么

kubernetes 下的 jenkins 如何设置 maven,java 异步请求原理

作者:Java高工P7
  • 2021 年 11 月 10 日
  • 本文字数:1239 字

    阅读完需:约 4 分钟

  1. kubernetes:1.15

  2. jenkins:2.190.2

  3. maven:3.6.3

设置 maven

如果您已经参考《Helm部署和体验jenkins》在 kubernetes 部署了 jenkins,接下来要做的是设置 maven 插件:


  1. 在设置页面进入 Global Tool Configuration,如下图:



  1. 新建一个 Maven 配置,如下图,名为 mvn-3.6.3,版本选择 3.6.3:



  1. 点击底部的 Save 保存,今后在 pipeline 任务中就能通过名称 mvn-3.6.3 使用此 maven 工具了;

关于 maven 的 settings.xml

局域网内的 nexus 私有仓库是经常用到的,作用如下:


  1. 缓存中央仓库的 jar,这样局域网内的开发者在运行 maven 工程时,所需 jar 是从 nexus 下载的,而不必去中央仓库下载,可节省下载时间;

  2. 自己做的二方库发布到 nexus 私有仓库,给局域网内的其他人使用;


通常是通过配置 maven 的 settings.xml 来访问 nexus 私有仓库,因此,jenkins 在构建 maven 项目时也要用到配置好的 settings.xml 文件,才能访问 nexus 私有仓库;


PS:如果您想了解更多 nexus 的细节,请参考文章《Ubuntu部署和体验Nexus3》

设置 maven 的 settings.xml

这是本文的重点,思路如下:


  1. 把 settings.xml 做成 configmap;

  2. 挂载到执行任务的 pod 中(在 jenkins 上配置好,以后创建的 pod 都会按此配置挂载);

  3. jenkins 任务的 pipeline 脚本中,执行 mvn 命令时指定挂载的 settings.xml 文件;


接下来是实现上述思路的操作:


  1. 准备好 settings.xml 文件,里面已配置好 nexus 私有仓库的信息,主要是 server 节点和 mirror 节点,内容参考下图:



  1. 将 settings.xml 上传到 kubernetes 环境,执行以下命令创建名为 settings.xml 的 configmap:


kubectl create configmap settings.xml \


--from-file=settings.xml \


-n helm-jenkins


上述命令有以下两点需要注意:


a. from-file 参数表示此 configmap 的内容来源,是当前目录下名为 settings.xml 的文件;


b. 此 configmap 的 namespace 名为 helm-jenkins,这是 jenkins 所在的 namespace;


3. Configure System 页面,找到 Pod Templates 的配置,增加一个 Config Map Volume,如下:


![在这里插入图片描述](https://img-blog.csdnimg.c


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


n/20200313213934411.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70)


4. Config Map 名称填写 settings.xml,挂载路径是/home/jenkins/settings,如下图:



5. 点击底部的 Save 保存设置;


6. 经过以上设置,执行 pipeline 任务时,pod 的/home/jenkins/settings 目录下就会有 settings.xml 文件,您只需指定使用此文件即可,mvn 命令的-s 参数就是用来指定 settings.xml 文件的,下图是一段 pipeline 脚本,里面有指定 settings.xml 的参数,可作为参考:


设置 pod 内存和 CPU

pod 内存如果太小,可能导致 maven 或者 gradle 运行时报 OutOfMemory 错误,因此需要设置 pod 内存:


  1. Configure System 页面,找到 Pod Templates 配置,点击下图红框中的 Advanced…按钮:



  1. 如下图红框所示,按照实际需求对 CPU 和内存进行调整,我这里设置了 1G 的内存:

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
kubernetes下的jenkins如何设置maven,java异步请求原理