溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Gradle中使用Sonarqube進(jìn)行代碼審查

發(fā)布時間:2021-05-17 17:29:05 來源:億速云 閱讀:525 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān)怎么在Gradle中使用Sonarqube進(jìn)行代碼審查,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Sonarqube

Sonarqube可以使用docker版本快速搭建

環(huán)境假定

本文使用到的sonarqube為本機(jī)32003可以訪問到的服務(wù)。

gradle的sonarqube插件

gradle中的sonarqube的插件是org.sonarqube,用來在gradle中調(diào)用sonarqube進(jìn)行代碼質(zhì)量分析。詳細(xì)介紹請參看:

  • https://plugins.gradle.org/plugin/org.sonarqube

  • 當(dāng)前插件最新版本:2.6.2(更新于2018/2/13)

使用方式

指定plugin

在build.gradle中添加如下插件版本信息

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

添加apply plugin信息

apply plugin: "org.sonarqube"

sonarqube設(shè)定信息

最簡單的需求的情況下,非多工程項(xiàng)目做以上配置即可,接下來就是傳遞給gradle所需要的sonarqube的詳細(xì)信息,而這些可以通過property的方式傳入,詳細(xì)的使用方式在前面的基礎(chǔ)中都已介紹,此處不再贅述,主要設(shè)定的內(nèi)容為:

  • URL:systemProp.sonar.host.url=http://localhost:32003

  • 用戶名:systemProp.sonar.login=admin

  • 密碼:systemProp.sonar.password=admin

設(shè)定方式可以使用如下方式:

sonarqube {
  properties {
    property "sonar.host.url", "http://localhost:32003"
    property "sonar.login", "admin"
    property "sonar.password", "admin"
  }
}

build.gradle詳細(xì)信息

liumiaocn:springboot liumiao$ cat build.gradle 
buildscript {
 ext {
 springBootVersion = '2.1.1.RELEASE'
 }
 repositories {
 mavenCentral()
 }
 dependencies {
 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
 }
}
plugins {
 id "org.sonarqube" version "2.6.2"
}
sonarqube {
  properties {
    property "sonar.host.url", "http://localhost:32003"
    property "sonar.login", "admin"
    property "sonar.password", "admin"
  }
}
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'org.sonarqube'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.liumiaocn'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
 mavenCentral()
}
dependencies {
 implementation('org.springframework.boot:spring-boot-starter-web')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}
jacocoTestReport {
  reports {
    xml.enabled false
    html.enabled true
  }
}
check.dependsOn jacocoTestReport
liumiaocn:springboot liumiao$

掃描方式

可以使用gradle sonarqube即可進(jìn)行掃描

執(zhí)行日志

liumiaocn:springboot liumiao$ gradle sonarqube
> Task :sonarqube
SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.scm.provider to define SCM of your project.
Class not found: javax.annotation.Nonnull
Class not found: javax.annotation.meta.When
Class not found: javax.annotation.meta.TypeQualifierNickname
Class not found: org.junit.jupiter.api.extension.ExtendWith
BUILD SUCCESSFUL in 6s
5 actionable tasks: 1 executed, 4 up-to-date
liumiaocn:springboot liumiao$

結(jié)果確認(rèn)

怎么在Gradle中使用Sonarqube進(jìn)行代碼審查

掃描結(jié)果確認(rèn)

可以看到質(zhì)量掃描結(jié)果和覆蓋率的信息都進(jìn)行了顯示

怎么在Gradle中使用Sonarqube進(jìn)行代碼審查

脆弱性信息詳細(xì)

查出了一個缺陷,實(shí)際是一個誤報(bào),詳細(xì)可參看maven使用方式的詳細(xì)介紹。

  • https://www.jb51.net/article/153522.htm

怎么在Gradle中使用Sonarqube進(jìn)行代碼審查

代碼覆蓋率

代碼覆蓋率的詳細(xì)信息也可以在sonarqube上進(jìn)行直接確認(rèn)

怎么在Gradle中使用Sonarqube進(jìn)行代碼審查

以上就是怎么在Gradle中使用Sonarqube進(jìn)行代碼審查,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI