Jenkins教程(四)安裝BlueOcean與Maven構建
- 2019 年 10 月 3 日
- 筆記
前言
本文旨在使用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