首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kubernetes下的jenkins如何设置maven

kubernetes下的jenkins如何设置maven

作者头像
程序员欣宸
发布于 2020-03-18 09:18:23
发布于 2020-03-18 09:18:23
2K00
代码可运行
举报
文章被收录于专栏:实战docker实战docker
运行总次数:0
代码可运行

关于kubernetes环境的jenkins集群

在kubernetes环境部署的jenkins集群,执行任务时会新建pod,任务完成后pod被销毁,架构如下所示:

在kubernetes搭建jenkins集群的细节,请参考《Helm部署和体验jenkins》

关于jenkins构建maven

作为java开发者,常用jenkins构建maven工程,当jenkins部署到kubernetes之上后,要做一些设置才能顺利编译构建

环境信息

本次实战涉及到的环境信息如下:

  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:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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;

  1. Configure System页面,找到Pod Templates的配置,增加一个Config Map Volume,如下:
  1. Config Map名称填写settings.xml,挂载路径是/home/jenkins/settings,如下图:
  1. 点击底部的Save保存设置;
  2. 经过以上设置,执行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的内存:
  1. 点击底部的Save保存设置;

输出构建结果

mavne工程编译构建成功后,我们需要拿到构建结果(例如是个jar文件),这里提供一种方式作为参考:通过数据卷的方式将构建结果保存到宿主机

  1. Configure System页面,找到Pod Templates配置,如下图,添加卷选择Host Path Volume:
  1. 如下所示,主机路径填写/usr/local/jenkinsoutput,挂载路径填写/home/jenkins/jenkinsoutput,这样就把pod的文件夹映射到宿主机上了:
  1. 请确保宿主机的/home/jenkins/jenkins_output有写权限

经过以上设置,jenkins环境已经可以顺利构建maven项目并取得结果了,下一篇文章会挑选一个热门开源项目来实战编译构建。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
kubernetes下jenkins实战maven项目编译构建
在kubernetes环境部署的jenkins集群,执行任务时会新建pod,任务完成后pod被销毁,架构如下:
程序员欣宸
2020/03/18
1.5K0
kubernetes下jenkins实战maven项目编译构建
K8S环境的Jenkin性能问题处理续篇(任务Pod设置)
本文是《K8S环境的Jenkin性能问题处理》的续篇,上一篇解决了Jenkins集群中的Master节点的性能问题,但是真正执行任务的并非Master节点,而是为每个任务临时创建的Pod,这些Pod的性能问题决定着任务的快慢甚至成败;
程序员欣宸
2020/05/26
9160
jenkins X实践系列(4) —— jenkins X 构建提速
jx是云原生CICD,devops的一个最佳实践之一,目前在快速的发展成熟中。最近调研了JX,这里为第4篇,介绍如何加入jx构建和部署。
JadePeng
2019/05/25
1.3K0
基于Kubernetes构建Jenkins微服务发布平台
软件环境:Jenkins + Kubernetes + Gitlab + Harbor+helm
yuezhimi
2020/09/30
2.2K0
基于Kubernetes构建Jenkins微服务发布平台
实战maven私有仓库三部曲之一:搭建和使用
在局域网内搭建maven私有仓库,可避免每次都从中央仓库下载公共jar包,另外将A模块作为二方库发布到私有仓库后,B模块可以很方便的引用,今天我们就来实战maven私有仓库的搭建和使用;
程序员欣宸
2022/05/06
6480
实战maven私有仓库三部曲之一:搭建和使用
基于 Jenkins、Gitlab、Harbor、Helm 和 Kubernetes 的 CI/CD
我们利用 Kubernetes 来动态运行 Jenkins 的 Slave 节点,可以和好的来解决传统的 Jenkins Slave 浪费大量资源的缺点。之前的示例中我们是将项目放置在 Github 仓库上的,将 Docker 镜像推送到了 Docker Hub,这节课我们来结合我们前面学习的知识点来综合运用下,使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 来实现一个完整的持续集成和持续部署的流水线作业。
jwangkun
2021/12/23
2.8K0
基于 Jenkins、Gitlab、Harbor、Helm 和 Kubernetes 的 CI/CD
Kubernetes 基于容器云构建devops平台
本文以Kubernetes为基础,为基于java语言研发团队提供一套完整的devops解决方案。在此方案中,开发人员基于eclipse集成开发环境进行代码;开发人员所开发的代码交由由gitlab进行托管、版本管理和分支管理;代码的依赖更新和构建工作由Maven进行处理;为了提升工作效率和代码质量,在devops中引入SonarQube进行代码检查;对于打包构建后代码,交由docker进行镜像构建,并在私有镜像仓库中对镜像进行管理;最后,devops会将自动从私有镜像仓库从拉取镜像,并在Rancher中进行部署。
莲花海
2020/01/03
1.6K0
Jenkins+GitLab+Docker+SpringCloud+Kubernetes实现可持续自动化微服务
  现有混合云平台的场景下,即有线下和线上的环境,又有测试与正式的场景,而且结合了Docker,导致打包内容有所区分,且服务的发布流程复杂起来,手工打包需要在编译阶段就要根据环境到处更改配置,因此纯手工发布增加了实施的难度,需要一个统一的适应各种环境部署的方案。
欢醉
2020/06/19
2.3K0
通过jenkins交付微服务到kubernetes
随着Kubernetes的遍地开花,Kubernetes的优势可以说是深入人心,很多企业也是利用Kubernetes,来实现更高效的交付和更好地提高我们的资源使用率,推动标准化,适应云原生。
星哥玩云
2022/08/08
2.1K0
通过jenkins交付微服务到kubernetes
使用Docker基于Nexus3快速搭建Maven私有仓库
启动容器并将宿主机/usr/local/nexus-data(目录需要提前创建)目录映射到容器/nexus-data目录,这样就可以保存容器产生的文件了,具体请百度查询docker相关信息。 安装完成。
吟风者
2019/11/22
4.7K3
实战maven私有仓库三部曲之二:上传到私有仓库
在上一章《实战maven私有仓库三部曲之一:搭建和使用》我们搭建了maven私有仓库,并体验了私有仓库缓存jar包的能力,避免了局域网内开发人员去远程中央仓库下载的痛苦等待,本章我们再来体验私有仓库的另一个功能:保存二方库;
程序员欣宸
2022/05/06
1.4K0
实战maven私有仓库三部曲之二:上传到私有仓库
最全教程 | Kubernetes + Jenkins + Helm + Springboot 实践
为了方便集成 Maven、Kubernetes、配置文件等等,这里需要安装几个别的插件,这里插件可以在 系统管理—>插件管理—>可选插件 里面安装下面列出的插件。
我的小碗汤
2019/12/27
9K0
最全教程 | Kubernetes + Jenkins + Helm + Springboot 实践
云原生(三十八) | Kubernetes篇之Jenkins入门和安装
点击《系统管理》—>《Configure System》—>《配置一个云》—>《kubernetes》,如下:
Lansonli
2022/10/30
7480
云原生(三十八) | Kubernetes篇之Jenkins入门和安装
Gitlab+Jenkins+k8s+Helm 的自动化部署实践
本文从实践角度介绍如何结合我们常用的 Gitlab 与 Jenkins,通过 K8s 来实现项目的自动化部署,示例将包括基于 SpringBoot 的服务端项目与基于 Vue.js 的 Web 项目。
kubernetes中文社区
2021/11/12
3.9K0
maven私有仓库搭建
搭建Maven私有仓库可以使您的项目更加灵活地管理依赖项,而不必依赖于公共Maven中心仓库。
堕落飞鸟
2023/03/31
2.6K0
jenkins X实践系列(1) —— 背景知识
Jenkins X 是一个高度集成化的CI/CD平台,基于Jenkins和Kubernetes实现,旨在解决微服务体系架构下的云原生应用的持续交付的问题,简化整个云原生应用的开发、运行和部署过程。
JadePeng
2018/11/21
2.8K0
怎样一个金箍圈(Pipeline),让至尊宝(Openshift)完成了到孙悟空(DevOps)的蜕变
但说出这句话,和实现Devops全工具链落地之间的差距,与造出原子弹和E=MC2公式的差距,实不逞多让。
魏新宇
2018/09/30
3K0
怎样一个金箍圈(Pipeline),让至尊宝(Openshift)完成了到孙悟空(DevOps)的蜕变
Kubernetes配合Jenkins实现轻量自动持续集成
之前写的Spinnaker自动化部署,部署复杂,依赖环境多,所以才有这一篇比较轻量级的自动化持续集成,需要用到的环境有Kubernetes-1.23、harbor、Jenkins、Helm、gitlab都是devops常见组件。
王先森sec
2023/04/24
3.1K0
Kubernetes配合Jenkins实现轻量自动持续集成
Jenkins+Maven+Gitlab+Nexus持续集成环境搭建
Jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行
仙人技术
2020/04/29
2.9K0
Maven 基础入门使用
注意: 不推荐直接使用<version>RELEASE<version>和 <version>LATEST<version>,因为它们都会在打包时去远程仓库拉取最新的,从而可能导致同一项目在打包时依赖不同的jar包。
全栈工程师修炼指南
2022/09/29
1.7K0
Maven 基础入门使用
推荐阅读
相关推荐
kubernetes下jenkins实战maven项目编译构建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档