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

引文

Share