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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM