一、接入SonarQube
掃描代碼
SonarQube
是一個用于管理代碼質量的開放平臺,可以快速的定位代碼中潛在的或者明顯的錯誤。
1.1 源碼管理
如果源碼托管在SVN
,需要進行Subversion
配置:
Repository URL
:源碼地址,比如https://ip/svn/auth
,auth
為Maven
項目,下面包含若干個子項目,比如auth-api
、auth-server
;Credentials
:輸入賬號、密碼;
1.2 Build Steps
下面以子項目auth-api
為例,構建步驟由若干部分組成。
1.2.1 Invoke top-level Maven targets
配置Maven
目標:
(1) Maven
版本:比如3.95
;
(2) 目標:
clean
verify
-f ./auth-api/pom.xml -Dmaven.test.failure.ignore=true
org.jacoco:jacoco-maven-plugin:0.8.1:prepare-agent
1.2.2 Execute SonarQube Scanner
配置SonarQube
掃描器;
(1) Task to run
:scan
;
(2) JDK
:jdk-11.0.20
;
(3) Analysis properties
:
sonar.host.url=http://ip:9000 # sonarqube地址
sonar.login=2dace8ca471b9e5c8ef132081d0ef09ed1294a56
sonar.projectKey=auth-api
sonar.projectName=auth-api
sonar.coverage.jacoco.xmlReportPaths=/home/jenkinsagent/workspace/AUTH_API_DEV_SONAR/auth-api/target/site/jacoco/jacoco.xml
sonar.sources=/home/jenkinsagent/workspace/AUTH_API_DEV_SONAR/auth-api/src/main/java/
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.java.binaries=/home/jenkinsagent/workspace/AUTH_API_DEV_SONAR/auth-api/target/classes
sonar.junit.reportPaths=/home/jenkinsagent/workspace/AUTH_API_DEV_SONAR/auth-api/target/surefire-reports
sonar.tests=/home/jenkinsagent/workspace/AUTH_API_DEV_SONAR/auth-api/src/test/java/
sonar.projectBaseDir=/home/jenkinsagent/workspace/AUTH_API_DEV_SONAR/auth-api
二、jenkins
自動部署
2.1 源碼管理
如果源碼托管在SVN
,需要進行Subversion
配置:
Repository URL
:源碼地址,比如https://ip/svn/auth
;Credentials
:輸入賬號、密碼;
構建策略Check-out Strategy
:Use 'svn update' as much as possible
。
2.2 Build Steps
下面以Maven
項目auth
為例,構建步驟只配置Invoke top-level Maven targets
;
(1) Maven
版本:比如3.95
;
(2) Maven
目標:
clean
package
-U
-Dmaven.test.skip=true
如果還有前端項目,可以配置Execute shell
:
cd $WORKSPACE/auth
node -v
npm -v
npm run build
2.3 構建后步驟
Send build artifacts over SSH
配置。
2.3.1 SSH Server
Name
:服務器名稱;
2.3.2 Transfer Set
配置如下信息:
Source files
;
Remove prefix
;
Remote directory
;
Exec command
;