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

IDEA集成Sonar的完整流程

 更新時間:2023年06月07日 09:48:24   作者:畢小寶  
這篇文章主要介紹了IDEA集成Sonar的完整流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

背景

最近關注代碼質(zhì)量管理工具,用過了阿里的開發(fā)者規(guī)范插件后,又看了下 Sonar ,弄明白這個工具的使用流程花費了小半天的時間,這里整理下其中的盲點。

說來也奇怪,搜索到的 IDEA 集成 Sonar 的文章也不少,就是沒有一篇能教會我這個初次接觸 Sonar 的人。

還得靠自己連蒙帶猜地各種嘗試,才搞明白整個過程。

相關的模塊及關系

  • Sonar:該工具的統(tǒng)稱
  • SonarLint:IDEA 的 Sonar 插件
  • SonarQube:一個 Web 應用,服務端,統(tǒng)一管理 Sonar 掃描結(jié)果、掃描規(guī)則配置
  • sonar-maven-plugin:Sonar 客戶端,從 SonarQube 服務器獲取掃描規(guī)則,并上傳掃描結(jié)果到 SonarQube 平臺

插件安裝

插件的安裝比較簡單,這個基本上不會有問題,在插件倉庫中搜索 “SonarLint” 插件,找到插件后點擊安裝即可。

本機已經(jīng)安裝過了,結(jié)果如下:

可能是我本機使用的 IDEA 版本【2016.3.1】比較老,所以插件安裝完成后,只有在某個文件編輯頁面右鍵才有 “Analyze with SonarLint” 操作,而在工程上右鍵,網(wǎng)上都說菜單位于 Analyze 中:

我的 IDEA 中找不到這個操作,但是選中某個文件夾后,可以通過快捷鍵【Ctrl+Shif+S】對該目錄進行掃描,通過進度條可以知道它掃描的是整個目錄:

在單個文件中,右鍵有掃描操作:

注意點:插件安裝成功后,可以直接進行掃描,雖然當前版本的 IDEA 工程右鍵沒有這個操作,但是快捷鍵可以用,說明插件安裝成功。

SonarQube 啟動

SonarQube 是 Sonar 的 Web 管理應用,非解壓版的,下載地址

由于這是一個 Web 應用,需要用到數(shù)據(jù)庫,需要創(chuàng)建一個數(shù)據(jù)庫,名稱沒有限制,需要修改配置文件中的數(shù)據(jù)庫連接信息。

操作過程:

  • 本地數(shù)據(jù)庫用 MySQL ,創(chuàng)建一個名為 sonar 的數(shù)據(jù)庫
  • 解壓 SonarQube ,定位到配置文件目錄 E:\software\sonarqube-7.6\conf
  • 修改 sonar.properties 文件,在 28 行添加如下配置:
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
  • 進入 bin 目錄找到跟自己主機一致的目錄 E:\software\sonarqube-7.6\bin\windows-x86-64
  • 運行 StartSonar.bat 啟動 SonarQube

注意點:StartSonar.bat 會啟動一個 DOS 窗口運行,首次啟動時耗時較長。此外,關閉 DOS 界面時,后臺對應的 Java 進程不會結(jié)束。

不會結(jié)束的坑就是:端口會繼續(xù)被占據(jù)。

如果再次點擊啟動文件,則啟動操作會閃退,此時可以在 log 目錄中查看日志定位錯誤。

因此,沒有事情的話,不要關閉它的界面,如果必須關閉后重啟,那么關閉后手動打開進程管理器,停掉對應的 Java 進程。

SonarQube 創(chuàng)建工程

SonarQube 啟動后,訪問 http://localhost:9000 進入其登錄界面,輸入 sonar.properties 中配置的帳號和密碼后進入主界面:

SonarQube 是以工程為單位進行掃描管理的,第一步需要點擊 A 前面的 + 號,創(chuàng)建一個新工程:

注意點:如果插件配置認證方式為 Token ,那么這里需要記錄該項目的 Token 信息。

插件配置

IDEA 中需要配置 SonarQube 的訪問地址和工程,配置方法為:

1.打開插件通用配置界面

2.點擊 + 號添加 SonarServer

3.下一步配置認證信息

認證方式有兩種,Token 和密碼,Token 即前面創(chuàng)建項目時生成的 Token 信息。這里選擇密碼方式,輸入 SonarQube 訪問密碼:

4.SonarLint 項目配置

至此,IDEA 插件 SonarLint 和 SonarQube 關聯(lián)配置完成。

maven-sonar 插件

maven-sonar 插件,本質(zhì)是一個 sonar-runner 掃描工具,也是一個客戶端。

根據(jù) 官方 maven-sonar 插件配置教程 完成 Maven setting.xml 配置。

1.添加 maven-sonar 插件

在 pluginGroups 節(jié)點下,添加一個子節(jié)點:

<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

2.添加 sonar 的 profile

在 profiles 節(jié)點下添加一個子節(jié)點,配置 sonar 插件的主機 URL:

<profile>
		<id>sonar</id>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
		<properties>
			<!-- Optional URL to server. Default value is http://localhost:9000 -->
			<sonar.host.url>
			  http://localhost:9000
			</sonar.host.url>
		</properties>
    </profile>

3.工程 pom.xml 配置插件版本

在待掃描工程的 pom.xml 文件中,添加 build 插件,配置 maven-sonar 插件版本:

 <plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.6.0.1398</version>
  </plugin>

maven 執(zhí)行掃描命令

直接運行 maven 生命周期中的各種方法,都不能完成 soanr 代碼掃描及結(jié)果上傳。

官方是通過執(zhí)行mvn sonar:sonar 命令完成的,所以想到的辦法是在 IDEA 的 termianl 控制界面執(zhí)行該命令,測試它的確能完成掃描結(jié)果的上傳:

執(zhí)行成功結(jié)果為:

maven-sonar 插件使用的注意點:不能對 SVN 服務器端版本較低的 SVN 項目進行掃描,否則會執(zhí)行失敗。

錯誤信息如下:

Error when executing blame for file src/main/java/com/xxxx/SpringContextUtil.java: svn: E200007: Retrieval of mergeinfo unsupported by svn:url

網(wǎng)上找的解決辦法不生效,所以只能對本地非 SVN 項目進行代碼掃描。

掃描結(jié)果查看

mvn sonar:sonar 命令執(zhí)行完成后,訪問 SonarCube 主頁能查看最新的掃描結(jié)果:

Issues 菜單下,選擇 All 而不是 My Issues ,貌似它可以對掃描到的 Issues 進行分配,這里能看到所有的問題。

Project 菜單下,呈現(xiàn)各個項目的,這里使用命令執(zhí)行后,自動創(chuàng)建了一個與工程應用名相同的項目:

啟示錄

反復執(zhí)行掃描后,發(fā)現(xiàn) SonarLint 插件的功能跟 maven-sonar 插件是一樣的。理論上來講,通過 SonarLint 功能,即對某個功能執(zhí)行 Analyze with SonarLint 與在終端執(zhí)行 mvn sonar:sonar 命令效果應該一樣才對。

maven 的 setting.xml 中只配置了 SonarQube 的 host.url ,并沒有指定項目名稱,所以執(zhí)行完成 mvn sonar:sonar 命令后,在 Web 頁面會自動創(chuàng)建一個與掃描工程名稱一樣的項目。

而前面對插件配置的 SonarQube Server 和 project 指定是針對 Analyze with SonarLint 的,手動執(zhí)行該操作后,理論上應該在對應的項目中看到掃描結(jié)果的??上?,我這個 IDEA 版本下沒有完成掃描結(jié)果的上傳。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring Cloud出現(xiàn)Options Forbidden 403問題解決方法

    Spring Cloud出現(xiàn)Options Forbidden 403問題解決方法

    本篇文章主要介紹了Spring Cloud出現(xiàn)Options Forbidden 403問題解決方法,具有一定的參考價值,有興趣的可以了解一下
    2017-11-11
  • springboot的jar包如何啟用外部配置文件

    springboot的jar包如何啟用外部配置文件

    本文主要介紹了springboot的jar包如何啟用外部配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Spring基于@Conditional條件化裝配bean

    Spring基于@Conditional條件化裝配bean

    這篇文章主要介紹了Spring @Conditional條件化裝配bean,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java模版引擎Freemarker

    Java模版引擎Freemarker

    FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫 FreeMarker被設計用來生成HTML Web頁面,特別是基于MVC模式的應用程序
    2016-04-04
  • SpringBoot+devtools實現(xiàn)熱部署的示例代碼

    SpringBoot+devtools實現(xiàn)熱部署的示例代碼

    在軟件項目的開發(fā)過程中,不可避免的會經(jīng)常修改代碼,每次修改代碼,都需要手動停止然后再啟動服務,最后驗證代碼的正確性,今天通過這篇文章,我們一起來學習一下如何使用Spring?Boot?+?devtools?輕松搞定熱部署,需要的朋友可以參考下
    2024-08-08
  • Java參數(shù)校驗Validator與@AssertTrue深度解析

    Java參數(shù)校驗Validator與@AssertTrue深度解析

    本文詳細介紹了Java的Validator框架及其@AssertTrue注解的使用,包括環(huán)境準備、基礎注解介紹、實戰(zhàn)示例、@AssertTrue的深入解析、高級特性和最佳實踐建議,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • IntelliJ IDEA(或者JetBrains PyCharm)中彈出

    IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License

    今天小編就為大家分享一篇關于IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License Activation"的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • java8新特性之接口默認方法示例詳解

    java8新特性之接口默認方法示例詳解

    這篇文章主要給大家介紹了關于java8新特性之接口默認方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java8具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-08-08
  • springboot中RabbitMQ死信隊列的實現(xiàn)示例

    springboot中RabbitMQ死信隊列的實現(xiàn)示例

    死信隊列是一種特殊的消息隊列,用來存儲無法被正常消費的消息,常被用來實現(xiàn)延遲處理,異常消息處理等,本文主要介紹了springboot中RabbitMQ死信隊列的實現(xiàn)示例,感興趣的可以了解一下
    2024-01-01
  • java實現(xiàn)隊列queue數(shù)據(jù)結(jié)構(gòu)詳解

    java實現(xiàn)隊列queue數(shù)據(jù)結(jié)構(gòu)詳解

    大家好,本篇文章主要講的是java實現(xiàn)隊列queue數(shù)據(jù)結(jié)構(gòu)詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02

最新評論