Jenkins教程(四)安装BlueOcean与Maven构建
前言
本文旨在使用BlueOcean实现构建可视化与使用Maven构建上一节Jenkins教程(三)添加凭据与流水线拉取Git代码拉下来的代码
什么是Blue Ocean
Blue Ocean 重新思考Jenkins的用户体验,从头开始设计Jenkins Pipeline, 但仍然与自由式作业兼容,Blue Ocean减少了混乱而且进一步明确了团队中每个成员 Blue Ocean 的主要特性包括:
- 持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。
- Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
- 个性化 以适应团队中每个成员不同角色的需求。
- 在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
- 本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。
简言之:简化复杂可视化,提供更个性直观的界面,可以精准定位构建失败的位置
安装Blue Ocean
- 准备条件:是管理员用户,或拥有安装插件的权限
Manage Jenkins
> Manage Plugins
过滤
输入Blue Ocean
> 勾选第一个Blue Ocean
> 直接安装
> 安装完成返回首页
这里提示有很多
Blue Ocean
的插件,我们是无需手动安装的,通过安装Blue Ocean
会自动安装官方推荐的其它组件
此时我们可以使用 <host>:<port>/blue
进行访问到Blue Ocean的页面
这里先不讲,配置好Maven后,我们再来使用它来构建一次
使用Maven构建工具
这里使用docker的maven镜像来进行构建工程,以减少多个构建工程使用同一构建工具时的冲突问题
另一方面是演示下agent的使用😆
准备条件:
- 安装Docker
- 添加Jenkins到Docker用户组
sudo usermod -aG docker jenkins && newgrp docker
- 重启Jenkins
创建自定义maven的配置文件/home/jenkins/mvnrepo/settings.xml
,使用了阿里的镜像源,本地仓库这个不用改,这里会被容器映射到容器内/root/.m2
<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"> <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> </settings>
在Github的仓库中我创建了chapter2分支,里面的Jenkinsfile如下
pipeline { agent { //这里使用docker镜像来启动maven,这样有个好处就是多个工程同时构建时不会出现冲突而失败 docker { image 'maven:3.6-alpine' args '-u root -v /home/jenkins/mvnrepo:/root/.m2' //持载到本地,减少重复下载量,使用ali源 } } stages { stage('Pull Git Demo') { steps{ //拉取代码 git 'https://github.com/hellxz/springboot-demo1.git' } } stage('Build') { steps { //执行构建命令 sh 'mvn -B -DskipTests clean package' } } } }
持载的那个位置下的settings.xml会被maven容器使用,从而修改镜像源,另外在settings.xml中指不指定本地仓库都没区别,亲测
创建流水线
指定Jenkinsfile所在的版本控制与分支,这里我使用的是https://github.com/hellxz/JenkinsfileTutorials.git
分支是chapter2,检出到chapter2目录下,Jenkinsfile直接就在仓库的根目录内
启动测试
输入http://<host>:<port>/blue
, 点击刚才创建的maven build demo
项目
点击运行
构建成功,我们查看Build
步骤,可以看到构建成功了
由于在公司里我使用的是本地配置的maven,所以查hub.docker.com,对Jenkinsfile中使用maven镜像的部分修改了几次,不然你会看到拉取的jar包都是从阿里源中拉出来的
查看构建目录
本文结束
后记
被maven-docker的文档小坑了一下,文档中提到的自定义settings.xml文件是持载到另一个目录下
还有就是maven容器内使用的用户是非root用户,如果按官方文档中不加-u root
,那么容器内的/root/.m2
目录是持载不出来的!
当前我们的构建属于脏构建,即上次的构建结果与代码拉取结果都在同一个工作目录中,这样是需要修改的,现在为了简单演示没有添加,可以在拉代码前加一个清理空间的步骤,使用
cleanWs()
命令
下篇准备写把微服务项目打成Docker镜像,静请期待
引文
Using docker image of maven with jenkins - could not create local repository
本文系Hellxz学习与实践文章,禁止布布扣、码迷、爱码网等第三方爬虫网站爬取,转载请在醒目位置注明出处:https://www.cnblogs.com/hellxz/p/pipeline_maven_build.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了