1. 程式人生 > >使用sonar進行maven專案程式碼質量管理

使用sonar進行maven專案程式碼質量管理

 今天突然心血來潮想來搭建sonar檢測一下手上的專案程式碼質量, 首先當然是到sonar官網下載最新版本了, 地址在這 :http://www.sonarqube.org/downloads/   , 我下載的是SonarQube 4.0 , 然後解壓, 進根目錄裡的bin目錄下,找到對應的作業系統版本的啟動檔案, 雙擊StartSonar.bat 後看到這個介面就表示啟動了


預設的埠是9000, 開啟瀏覽器訪問一下 http://localhost:9000/  , 一切正常的話你應該可以看到這個介面


這樣就表示啟動成功了, 預設的帳號密碼均是admin, 儘管我電腦的作業系統是英文版的, 但我還是比較願意看到中文版的sonar, 所以這裡我要先去將它中文化, sonar具有很強的擴充套件性,所以中文外掛也是有的, 在它官網裡就提供了, 地址在這:

http://docs.codehaus.org/display/SONAR/Chinese+Pack ,我下的是1.7版本,得到sonar-l10n-zh-plugin-1.7.jar, 然後將它放到sonar的sonarqube-4.0\extensions\plugins這個目錄下,重啟你的sonar服務, 此時再次訪問就應該是這樣的


好了, 到這裡之後我們就需要去配置資料庫了, 因為sonar會將分析專案的結果儲存在資料庫裡, 所以我們在繼續使用之前需要去配置資料庫連線, 在sonarqube-4.0\conf目錄下有一個sonar.properties檔案,裡面放置了各種sonar支援的資料庫連線和連線池的配置,這裡我們使用MYSQL的方式, 註釋掉它預設的配置, 解開MYSQL跟更改資料庫帳號密碼, 它看起來應該就像是這樣的


儲存, 然後開啟去你的MYSQL中建立一個名為sonar的資料庫,然後再重啟sonar服務, 成功啟動後就可以檢查一下你的sonar資料庫裡有沒有表了, 它應該是這樣的。


如果一切正常,那麼現在就需要來配置maven了, sonar是通過Maven2 外掛來分析原始碼並把結果注入到資料庫中.因此需要在Maven的配置裡設定資料庫的屬性。進入maven安裝目錄apache-maven-2.2.1\conf下, 修改settings.xml檔案, 新增如下配置

123456789101112131415161718< profiles > < profile > < id >sonar</
 id > < properties > < sonar.jdbc.driver >com.mysql.jdbc.Driver</ sonar.jdbc.driver > < sonar.jdbc.username >root</ sonar.jdbc.username > < sonar.jdbc.password >root</ sonar.jdbc.password > < sonar.host.url  sonar.host.url <!-- Sonar伺服器訪問地址 --> </ properties > </ profile > </ profiles > < activeProfiles > < activeProfile >sonar</ activeProfile > </ activeProfiles >

 儲存後找到你需要被sonar分析的maven專案根目錄,比如我的一個CMS的專案根目錄, 它看起來是這樣(這裡注意要被分析的專案必須帶有pom檔案)


 然後執行命令列進入該目錄, 執行maven 命令  mvn clean install  sonar:sonar  然後就是漫長的等待, 直到你看到這個介面

 

就表示大功告成, 可以去訪問你的sonar服務, 重新整理一下, 將會看到多了一個專案出來, 點選分析後就可以看到這個介面, 這是我的


好了, sonar的安裝和配置MYSQL, 分析maven專案的過程就演示到這裡, 下次再繼續深入演進。

(拖堂時間。。。)

下面列出了一些常用的外掛:

下課!

轉自:https://my.oschina.net/codingforme/blog/185106

***************************************************************************************************************************************************

1.在官網下載sonar,解壓

2.在本地的mysql資料庫建立sonar資料庫

3.在sonar的conf/sonar.properties新增:

sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

4.在maven的setting.xml中新增:

<profile>
   <id>sonar</id>
   <activation>
      <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
      <!-- SERVER ON A REMOTE HOST -->
      <sonar.host.url>http://localhost:9000</sonar.host.url>
   </properties>
</profile>

5.在sonar的bin目錄找到對應作業系統的啟動檔案,如/macosx-universal-64/sonar.sh,執行./sonar.sh start

6.對專案進行mvn sonar:sonar,即開始程式碼分析

7.上一步build success之後,訪問localhost:9000檢視sonar頁面,projects選單下即可見到專案的分析結果

8.在sonar頁面使用admin/admin登入,可以對sonar進行管理

轉自:https://zhuanlan.zhihu.com/p/27645937

*****************************************************************************************************************************************************

  • 配置maven

編輯位於$ MAVEN_HOME / conf或〜/ .m2中的settings.xml檔案,設定外掛字首和可選的SonarQube伺服器URL

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://sonar.aniu.so  # 填寫自己的sonar伺服器地址
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>
  • 分析一個Maven專案

移動到一個maven專案目錄內,執行下面命令

mvn clean verify sonar:sonar 
連結:https://www.jianshu.com/p/275edb731802
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

******************************************************************************************************************************************************

問題:

問題1:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

解決:

對我來說今天真是糟糕的一天,我花了許多時間下載最新的 Spring Tool Suite based on Eclipse 4.4.1 壓縮版,但是現在出現了下面的錯誤。

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.162 s
[INFO] Finished at: 2014-12-30T02:13:56+05:30
[INFO] Final Memory: 8M/19M
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "pom.xml" could not be activated because it does not exist.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project demo: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] -> [Help 1]

方法1

  • 點選 Windows -> Preferences -> Java -> Installed JREs -> Add -> Standard VM, 然後選擇JAVA_HOME 
    JAVA_HOME
  • 從已經安裝的JRE中選擇新的JRE並點選OK 
    JRE

方法2

最簡單並且在所有場景中都適用

  • 第一步-開啟Spring Tool Suite(STS)的安裝目錄
  • 第二步-右擊STS.ini
  • 第三步-開啟 -VM JAVA_HOME/bin/javaw.exe然後重啟Eclipse Spring Tool Suite (STS),Eclipse將會自動獲得這個JDK
 -vm
G:/jdk1.7.0_25/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20140603-1326
-product
org.springsource.sts.ide
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-XX:MaxPermSize=256m
-Dorg.eclipse.swt.browser.IEVersion=10001

方法3

開啟pom.xml,輸入以下高亮部分並將正確的JDK路徑輸入。(不支援部分高亮,start至end部分)

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!--start-->
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                    <fork>true</fork>
                       <executable>
                       D:\jdk1.7.0_25\bin\javac.exe
                      </executable>
            </configuration>
        </plugin>
        <!--end-->
    </plugins>
</build>

轉自:http://blog.csdn.net/BlueBlueSkyZ/article/details/54894746

(我用的IDEA,我採用的是第三種方法)

問題2:

解決:意思是說在maven本地倉庫沒有找到admin-base的jar包,首先去本地倉庫檢視是否存在admin-base的jar包,本地倉庫的位置:(一般在這裡),具體得看配置在哪。如果不存在,則需要手動匯入jar包。我這裡的admin-base是父專案。需切換到專案執行:mvn install,在執行之前,需對pom.xml中的

標籤改為jar---><packaging>jar</packaging>