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镜像,静请期待

引文

Docker Hub/Maven

Using docker image of maven with jenkins - could not create local repository

使用Maven构建Java应用程序

本文系Hellxz学习与实践文章,禁止布布扣、码迷、爱码网等第三方爬虫网站爬取,转载请在醒目位置注明出处:https://www.cnblogs.com/hellxz/p/pipeline_maven_build.html

posted @   东北小狐狸  阅读(5499)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示