寫在前面的話html
咱們在使用普通的構建任務的時候使用了 Sonar 作代碼質量管理,也使用了 Publish Over SSH 插件中更新上線,可是咱們在 Pipeline 怎麼使用他們呢。java
若是你沒有查看以前的 Sonar 章節,建議倒回去專門看一遍:node
不然有些概念沒法理解!ssh
Pipeline 中使用 Sonarmaven
咱們操做的前提都是以及安裝了 Sonar,具體怎麼安裝能夠參考前面的章節。工具
1. Sonar 中配置 Token:ui
生成 Token,注意該 Token 只顯示一次,注意保存:url
2. 在 Jenkins 系統管理 --> 系統設置中配置 Sonar,若是你跟着前面章節作,這裏應該是配置了的。spa
3. 新建 Pipeline 任務:
3. 接下來即是操做的重點,配置 Pipeline:
在這以前,咱們須要知道幾個重點,Sonar 在代碼掃描的時候會用到:
【1】Sonar 掃描工具 Sonar Scaner:系統管理 --> 全局工具配置
【2】Sonar 的認證:系統管理 --> 系統設置
固然,這兩個配置咱們均可以自動生成語法來造成,可是咱們得須要知道他的原理,咱們後續在 Pipeline 中使用 Sonar 其實就是注意依賴於這兩個。
在流水線語法中,咱們先生成 Sonar Home 的路徑:
生成 Sonar 認證的語法:
經過 withSonarEnv 經過對應的 Token 可以生成認證語法。
此時,咱們就能夠編寫整個 Pipeline 中使用 Sonar 的方法:
這是最終 Sonar Pipeline 的基本寫法:
node { stage("拉取代碼"){ echo 'STEP 1:Clone code' git credentialsId: 'xxxx', url: 'http://192.168.10.199:8041/xxxx.git' } stage('代碼質量檢測') { echo 'STEP 2:Sonar code check' // 獲取 Sonar Scaner 家目錄並賦值給變量 def SonarScannerHome = tool name: 'xxxx' withSonarQubeEnv(credentialsId: 'xxxx') { sh "${SonarScannerHome}/bin/sonar-scanner -X "+ "-Dsonar.host.url=http://192.168.10.202:9000 " + "-Dsonar.language=java " + "-Dsonar.projectKey=Pipeline-Sonar-Test " + "-Dsonar.projectName=Pipeline-Sonar-Test " + "-Dsonar.sources=./ " + "-Dsonar.sourceEncoding=UTF-8 " + "-Dsonar.java.binaries=./ " } } }
紅色 xxxx 部分須要替換成爲本身生成的。
固然,咱們其實能夠將驗證直接寫爲 withSonarQubeEnv('Sonar') ,Sonar 是咱們添加驗證時候上圖中的 Name 屬性。
至於後面 Sonar 掃描的語法,其實就是咱們以前普通任務掃描時候的參數。具體含義能夠回去看以前的章節。
4. 查看構建結果:
Sonar 中查看:
至此,Pipeline 中使用 Sonar 到這裏完成。
Pipeline 中使用 Publish Over SSH
在新版本的 Publish Over SSH 插件中已經支持了 Pipeline,這意味着,咱們在語法生成器中能夠直接生成:
最終生成的語法以下:
配置示例:
node { stage("拉取代碼"){ echo 'STEP 1:clone code' git credentialsId: 'xxxx', url: 'http://192.168.10.199:8041/xxxx.git' } stage("打包代碼"){ echo 'STEP 2:code package' withEnv(['JAVA_HOME=/data/jdk7']) { sh '/data/maven/bin/mvn -e clean package -U -Dmaven.test.skip=true -Ptest' } } stage("上線發佈"){ echo 'STEP 3:deploy package' sshPublisher(publishers: xxxx) } }
紅色 xxxx 部分爲本身環境的配置,構建後在 Blue Ocean 中查看輸出:
Pipeline 中觸發另一個 Job
在語法生成器中,咱們能夠選擇 build a job 進行添加:
小結
固然還有一些其餘用法,我這裏只列舉了一下經常使用的用法,至於其餘的用法,後續用到的時候再來增長。