持續集成六 Jenkins配置項目和質量檢測(sonar)

目錄

1.安裝插件

2.配置sonarQube服務

3.創建自由風格或是maven項目

4.定時任務配置:

5.sonar環境

6.編譯

6.1指定pom.xml編譯

6.2 指定編譯的模塊或目錄(接着5.1)

7.sonar scanner

7.1 掃描指定模塊

8.配置前端掃描


配置多個模塊和單個模塊不一樣,多個模塊配置問題可以看下一篇

1.安裝插件

  • checkstyle
  • findbugs
  • pmd
  • jacoco(這個也可以安裝)
  • sonar scanner

2.配置sonarQube服務

 

如果是配置本地,url不要寫127.0.0.1 訪問不了,要寫localhost;

注意:jenkins和sonar都是docker,且部署在同一臺機器上

這裏的配置就是在docker裏分配的地址

首先jenkins和sonar都要在同一網段內,可以使用命令

#新建bridge
docker network create dep_network
#將之前我們的jenkins加入該網絡
docker network connect dep_network jenkins
#將之前的sonar加入該網絡
docker network connect dep_network sonarqube

然後使用命令:

docker inspect sonarqube,查看地址

 

這張圖是docker inspect sonarqube

配置sonar scanner全局插件

3.創建自由風格或是maven項目

4.定時任務配置:

參數一共五個

  1. 分鐘  取值0-59

  2. 小時  取值 0-23

  3. 天   取值 1-31

  4. 月  取值 1-12

  5. 星期  取值0-7,0和7都表示星期天

第一種是在源碼發生改變時觸發:

第二種是週期性觸發:

5.sonar環境

6.編譯

對應上一篇說過的maven命令

clean package checkstyle:checkstyle findbugs:findbugs pmd:pmd org.jacoco:jacoco-maven-plugin:prepare-agent -Dmaven.test.failure.ignore=true

6.1指定pom.xml編譯

在一些情況下,我們會進行一些特殊配置,是的要執行的pom.xml文件不再根目錄,而像上面的配置,模式是從根目錄執行的

6.2 指定編譯的模塊或目錄(接着5.1)

參考了 https://segmentfault.com/q/1010000021576084/

注意:

使用命令  -pl 命令指定模塊編譯,執行入口pom.xml的路徑爲根目錄,就像上面我寫的是build/pom.xml,那麼我要編譯sso-web-login,對應的寫法“-pl ../sso-web-login -am”

就和build/pom.xml裏配置的一樣。

 

多個模塊就用逗號隔開:-pl ../sso-service,../sso-web-login -am    

-pl 是指定要編譯的模塊;

-am 表示同時編譯它依賴的模塊;

 jenkins 指定編譯,包含依賴模塊,我在編譯的pom.xml裏配置了所有模塊,比如eureka server這些都沒有編譯。

7.sonar scanner

分析命令說明

#項目的key(唯一)
sonar.projectKey=xxx
#項目名稱,可以隨意,
sonar.projectName=xxx
#項目版本
sonar.projectVersion=1.1.0-SNAPSHOT
#語言
sonar.language=java
#編碼
sonar.sourceEncoding=UTF-8
#有時會出現Please provide compiled classes of your project with sonar.java.binaries property報錯,所以加上掃描路徑
sonar.java.binaries=./target/classes

構建後加入checkstyle  findbugs  pmd報表輸出,默認就行,默認值是: **/checkstyle-result.xml

 

7.1 掃描指定模塊

對應5.2節,在配置了指定的模塊編譯,導致某些目錄沒有編譯(沒有字節碼文件),如果不配置soanr掃描的路徑就會報錯;soanr掃描需要一個binaries的屬性,就是需要編譯後的字節碼。

這裏用到還是sonarQube analysis with maven 功能,在最後增加如下屬性,指定掃描已經編譯成功的文件路徑,注意sonar.inclusions配置的路徑是相對項目的,不是相對build/pom.xml

-Dsonar.inclusions=sso-service/**/*,sso-web-login/**/*

同時,如果有配置5.1節(指定pom.xml)這裏也需要一樣的配置,沒有指定自定義pom,那麼這裏默認就行

掃描結果

8.配置前端掃描

配置掃描前端代碼,首先還是插件。

這裏我掃描的是vue,查看插件支持文件:

下面着有關目錄的看情況配置

sonar.projectKey=xxx
sonar.projectName=xxx
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
#爲項目根目錄名稱
sonar.modules=xxx/src
# JavaScript module
javascript-module.sonar.projectName=xxx
javascript-module.sonar.language=js
javascript-module.sonar.sources=.
javascript-module.sonar.projectBaseDir=src

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章