承接《Jenkins pipeline腳本編寫實踐分享(一)上篇》,我們繼續下一個步驟
// 編譯構建代碼
stage(構建) { steps{ // maven構建
sh "mvn -Dmaven.test.failure.ignore clean install"
} }
這個步驟就是執行下編譯打包,執行maven的命令就行了
stage(靜態檢查) {
steps { echo "starting codeAnalyze with SonarQube......" //sonar:sonar.QualityGate should pass withSonarQubeEnv(Sonar-6.4) { //固定使用項目根目錄${basedir}下的pom.xml進行代碼檢查 //sh "mvn -f pom.xml clean compile sonar:sonar"
sh "mvn sonar:sonar "+
"-Dsonar.sourceEncoding=UTF-8 "//+ //"-Dsonar.language=java,groovy,xml"+ //"-Dsonar.projectVersion=${v} "+ //"-Dsonar.projectKey=${JOB_NAME} "+ //"-Dsonar.projectName=${JOB_NAME}" } script { // 未通過代碼檢查,中斷 timeout(10) {
//利用sonar webhook功能通知pipeline代碼檢測結果,未通過質量閾,pipeline將會fail
def qg = waitForQualityGate() if (qg.status != OK) { error "未通過Sonarqube的代碼質量閾檢查,請及時修改!failure: ${qg.status}" } } } } }
接下來這步就是執行sonar靜態代碼檢查,sonar是裝在另一台伺服器上,同樣需要再Jenkins上進行配置