最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Gradle進階使用結合Sonarqube進行代碼審查的方法

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

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

Sonarqube

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

環(huán)境假定

本文使用到的sonarqube為本機32003可以訪問到的服務。

gradle的sonarqube插件

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

使用方式

指定plugin

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

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

添加apply plugin信息

apply plugin: "org.sonarqube"

sonarqube設定信息

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

  • URL:systemProp.sonar.host.url=http://localhost:32003
  • 用戶名:systemProp.sonar.login=admin
  • 密碼:systemProp.sonar.password=admin

設定方式可以使用如下方式:

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

build.gradle詳細信息

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即可進行掃描

執(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$

結果確認

掃描結果確認

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

脆弱性信息詳細

查出了一個缺陷,實際是一個誤報,詳細可參看maven使用方式的詳細介紹。

代碼覆蓋率

代碼覆蓋率的詳細信息也可以在sonarqube上進行直接確認

小結

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

參考文章

總結

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

相關文章

  • Java GC 機制與內(nèi)存分配策略詳解

    Java GC 機制與內(nèi)存分配策略詳解

    這篇文章主要介紹了Java GC 機制與內(nèi)存分配策略詳解的相關資料,需要的朋友可以參考下
    2017-02-02
  • java實現(xiàn)菜單滑動效果

    java實現(xiàn)菜單滑動效果

    這篇文章主要介紹了java實現(xiàn)菜單滑動效果,效果非常棒,這里推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Struts2實現(xiàn)上傳單個文件功能

    Struts2實現(xiàn)上傳單個文件功能

    這篇文章主要為大家詳細介紹了Struts2實現(xiàn)上傳單個文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • springboot實現(xiàn)圖片上傳與下載功能

    springboot實現(xiàn)圖片上傳與下載功能

    這篇文章主要為大家詳細介紹了后端spring項目經(jīng)常要做的功能,實現(xiàn)圖片上傳和下載,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • JDK?8和JDK?17的區(qū)別和新特性大全

    JDK?8和JDK?17的區(qū)別和新特性大全

    這篇文章主要給大家介紹了關于JDK?8和JDK?17的區(qū)別和新特性的相關資料,文中總結一些Jdk8到Jdk17的一些新特性,給大家選擇jdk版本的時候有些參考性,需要的朋友可以參考下
    2023-06-06
  • SpringCloud之@FeignClient()注解的使用方式

    SpringCloud之@FeignClient()注解的使用方式

    這篇文章主要介紹了SpringCloud之@FeignClient()注解的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解JUC并發(fā)編程之鎖

    詳解JUC并發(fā)編程之鎖

    這篇文章主要為大家介紹了JUC并發(fā)編程之鎖,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Java中的轉換流、壓縮流、序列化流、打印流及應用場景

    Java中的轉換流、壓縮流、序列化流、打印流及應用場景

    這篇文章主要介紹了Java中的轉換流、壓縮流、序列化流、打印流及應用場景,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 與近日火爆的ChatGPT聊Elasticsearch源碼

    與近日火爆的ChatGPT聊Elasticsearch源碼

    這篇文章主要為大家分享了與近日火爆的ChatGPT聊Elasticsearch源碼的話題內(nèi)容,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • SpringBoot利用filter實現(xiàn)xss防御功能

    SpringBoot利用filter實現(xiàn)xss防御功能

    Cross-Site?Scripting(跨站腳本攻擊)簡稱?XSS,是一種代碼注入攻擊,攻擊者通過在目標網(wǎng)站上注入惡意腳本,使之在用戶的瀏覽器上運行,利用這些惡意腳本,攻擊者可獲取用戶的敏感信息,本文給大家介紹了SpringBoot利用filter實現(xiàn)xss防御功能,需要的朋友可以參考下
    2024-09-09

最新評論

阿尔山市| 黔江区| 宣汉县| 丹阳市| 通河县| 吴川市| 塘沽区| 行唐县| 陇川县| 南岸区| 镇安县| 安仁县| 梓潼县| 兴隆县| 华坪县| 黄冈市| 阿瓦提县| 兴城市| 六盘水市| 徐闻县| 藁城市| 佛冈县| 濮阳市| 磴口县| 沁阳市| 林芝县| 皮山县| 江川县| 嘉定区| 新丰县| 抚顺市| 望江县| 隆昌县| 乌鲁木齐市| 靖西县| 桂东县| 涪陵区| 榆社县| 和顺县| 阳西县| 集安市|