欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Gradle進(jìn)階使用結(jié)合Sonarqube進(jìn)行代碼審查的方法

 更新時(shí)間:2018年12月26日 15:08:54   作者:liumiaocn  
今天小編就為大家分享一篇關(guān)于Gradle進(jìn)階使用結(jié)合Sonarqube進(jìn)行代碼審查的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

作為代碼質(zhì)量檢查的流行工具,比如Sonarqube能夠檢查代碼的“七宗罪”,跟代碼結(jié)合起來能夠更好地提高代碼的質(zhì)量,這篇文章將會介紹如何結(jié)合gradle和sonarqube對代碼質(zhì)量與測試覆蓋率進(jìn)行分析。

Sonarqube

Sonarqube可以使用docker版本快速搭建,可以參看一下Easypack整理的鏡像,具體使用可以參看如下鏈接,這里不再贅述:

環(huán)境假定

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

gradle的sonarqube插件

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

使用方式

指定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)

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

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

脆弱性信息詳細(xì)

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

代碼覆蓋率

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

小結(jié)

使用SonarQube可以很好的檢查出代碼的問題,但是在實(shí)際的項(xiàng)目中需要進(jìn)行裁剪和定制,掃出來的不一定有問題,沒有掃出來也不一定萬事大吉,但是一定程度的代碼規(guī)范和質(zhì)量提高還是很有用處,實(shí)際在使用的時(shí)候應(yīng)該根據(jù)具體情況進(jìn)行實(shí)施。

參考文章

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • SpringBoot中修改依賴版本的方法

    SpringBoot中修改依賴版本的方法

    這篇文章主要介紹了SpringBoot中如何修改依賴的版本,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • SpringBoot中的Actuator詳解

    SpringBoot中的Actuator詳解

    這篇文章主要介紹了SpringBoot中的Actuator詳解,Spring Boot Actuator 在Spring Boot第一個(gè)版本發(fā)布的時(shí)候就有了,它為Spring Boot提供了一系列產(chǎn)品級的特性,監(jiān)控應(yīng)用程序,收集元數(shù)據(jù),運(yùn)行情況或者數(shù)據(jù)庫狀態(tài)等,需要的朋友可以參考下
    2023-09-09
  • Springboot如何切換默認(rèn)的Tomcat容器

    Springboot如何切換默認(rèn)的Tomcat容器

    這篇文章主要介紹了Springboot如何切換默認(rèn)的Tomcat容器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 使用Java實(shí)現(xiàn)動態(tài)生成MySQL數(shù)據(jù)庫

    使用Java實(shí)現(xiàn)動態(tài)生成MySQL數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)動態(tài)生成MySQL數(shù)據(jù)庫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • Java多線程 線程組原理及實(shí)例詳解

    Java多線程 線程組原理及實(shí)例詳解

    這篇文章主要介紹了Java多線程 線程組原理及實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java中的線程池如何實(shí)現(xiàn)線程復(fù)用

    Java中的線程池如何實(shí)現(xiàn)線程復(fù)用

    這篇文章主要介紹了Java中的線程池如何實(shí)現(xiàn)線程復(fù)用問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Spring中使用@Value注解注入屬性文件中的值詳解

    Spring中使用@Value注解注入屬性文件中的值詳解

    這篇文章主要介紹了Spring中使用@Value注解注入屬性文件中的值詳解,通過Spring的@Value注解可以將xml中關(guān)聯(lián)的屬性文件中的值注入變量中,這樣就不需要通過創(chuàng)建Properties然后根據(jù)屬性文件讀取屬性值了,需要的朋友可以參考下
    2023-12-12
  • SpringBoot基于數(shù)據(jù)庫實(shí)現(xiàn)定時(shí)任務(wù)過程解析

    SpringBoot基于數(shù)據(jù)庫實(shí)現(xiàn)定時(shí)任務(wù)過程解析

    這篇文章主要介紹了SpringBoot基于數(shù)據(jù)庫實(shí)現(xiàn)定時(shí)任務(wù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解SpringBoot接收參數(shù)的五種形式

    詳解SpringBoot接收參數(shù)的五種形式

    在Spring Boot中,接收參數(shù)可以通過多種方式實(shí)現(xiàn),本文給大家介紹了SpringBoot接收參數(shù)的五種形式,并通過代碼和圖文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 談?wù)勗贘ava發(fā)送郵件中遇到的的問題

    談?wù)勗贘ava發(fā)送郵件中遇到的的問題

    本文介紹了在利用Java發(fā)送郵件過程中遇到的的兩個(gè)問題,以及如何解決這兩個(gè)問題。如果大家也遇到了這些問題,可以來參考借鑒。
    2016-08-08

最新評論