1. 程式人生 > >Jenkins中部署Sonar代碼檢查

Jenkins中部署Sonar代碼檢查

ati docke js插件 step unit scan 檢查 rop cati

1 安裝並啟動sonarqube

docker pull sonarqube:7.5-community
docker run   --name sonarqube   --network ci   --ip 172.18.0.16   -p 9000:9000   -d sonarqube:7.5-community

訪問http://ip:9000即可打開sonarqube頁面,默認用戶名密碼是admin/admin,然後生成Tokens
技術分享圖片

這個Tokens用於和Jenkins進行交互

2 在Jenkins中配置SonarQube服務器

(1)安裝SonarQube Scanner for Jenkins插件;
(2)系統管理->系統設置,配置SonarQube服務器
技術分享圖片

Name隨便命名,Job中需要用到;Server URL填之前安裝的SonarQube服務的URL;Server authentication token填前面在SonarQube中生成的Token。

3 在gradle中配置Sonar插件

在編譯腳本build.gradle中添加以下內容:

plugins {
  id "org.sonarqube" version "2.6"
}

sonarqube {
    properties {
        property "sonar.projectName", "platform"
    }
}

這裏的sonar.projectName為自定定義的工程名,Sonar檢查完之後會顯示在SonarQube界面。
要執行sonar檢查,只要在jenkins的pipeline腳本中添加以下內容即可:

stage("sonar-platform") {
  steps {
    withSonarQubeEnv(‘sonar‘) {
      sh ‘‘‘
        cd ${project}/platform
        gradle sonarqube
      ‘‘‘
    }
  }
}

4 使用sonar檢查js

檢查js代碼需要在SonarQube上安裝SonarJS插件,不過docker版本的SonarQube已經自帶了SonarJS插件,直接使用即可。js檢查需要使用sonar-scanner,需要下載鏡像:

docker pull mercuriete/sonar-scanner

jenkins腳本中添加以下內容:

stage("sonar-portal") {
  steps {
    withSonarQubeEnv(‘sonar‘) {
      sh ‘‘‘
        docker run --rm           -v ${project}/portal:/${project}/portal           mercuriete/sonar-scanner           sonar-scanner           -Dsonar.host.url=http://192.168.1.100:9000           -Dsonar.projectKey=${project}-portal           -Dsonar.sources=/${project}/portal/src
      ‘‘‘
    }
  }
}

Jenkins中部署Sonar代碼檢查