1、階段視圖:
2、準備工作
所需工具與插件
jdk:可以存在多版本
maven:可以存在多版本
sonar-scanner
憑證令牌
gitlab:credentialsId
sonarqube:配置在sonarqube208服務中
3、jenkinsfile
pipeline {agent anystages {stage('從gitlab下載代碼') {steps {script {git credentialsId: '977a0318-19c4-45f5-8f45-9e129d6753e3', url: 'http://git.xxxo.com.cn/officeweb/Officialweb.git'}}}stage('maven構建代碼') {tools {jdk "jdk1.8"}steps {sh 'java -version'sh '/usr/local/maven/apache-maven-3.5.4/bin/mvn -version'sh ' /usr/local/maven/apache-maven-3.5.4/bin/mvn clean install -Dmaven.test.skip=true'}post {always {script {if (currentBuild.currentResult == 'FAILURE') {currentBuild.result = 'FAILURE'throw new Exception('構建失敗,停止Pipeline執行')}}}}}stage('SonarQube分析代碼') {steps {withSonarQubeEnv('sonarqube208') {sh """/usr/local/sonar-scanner-5/bin/sonar-scanner \-Dsonar.projectKey=guanwang-server \-Dsonar.projectName=官網后臺 \-Dsonar.sources=src \-Dsonar.language=java \-Dsonar.java.binaries=target/classes \-Dsonar.junit.reportsPath=target/surefire-reports"""}}}stage('生成自定義鏡像') { steps {script {sh """cp /opt/pipeline/java/Dockerfile .docker build -t ${DOCKER_REGISTRY}/${aliyunRepo}/${image_name}:latest ."""}}}stage('登錄到鏡像倉庫') {steps {script{//sh 'docker logout ${DOCKER_REGISTRY}'//withCredentials([usernamePassword(credentialsId: 'b9bfab04-2a1f-4690-88ec-fb8c250d056a', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASSWORD')]) {sh """docker logout ${DOCKER_REGISTRY}docker login -u test-acr@1xxxxx5731673 -p xxxxzEWb ${DOCKER_REGISTRY}"""}}}stage('上傳自定義鏡像到阿里云') {steps {script {//withCredentials([usernamePassword(credentialsId: 'b9bfab04-2a1f-4690-88ec-fb8c250d056a', usernameVariable: 'aliyunUser', passwordVariable: 'aliyunPasswd')]) {// docker login -u ${aliyunUser} --password-stdin ${aliyunAddress} << EOF// ${aliyunPasswd}// EOF//docker tag ${image_name}:latest${aliyunAddress}/${aliyunRepo}/${image_name}:latestsh """docker push ${DOCKER_REGISTRY}/${aliyunRepo}/${image_name}:latest"""// }}}
}}
}
sonarqube 截圖