使用sonar進行maven專案程式碼質量管理
今天突然心血來潮想來搭建sonar檢測一下手上的專案程式碼質量, 首先當然是到sonar官網下載最新版本了, 地址在這 :http://www.sonarqube.org/downloads/ , 我下載的是SonarQube 4.0 , 然後解壓, 進根目錄裡的bin目錄下,找到對應的作業系統版本的啟動檔案, 雙擊StartSonar.bat 後看到這個介面就表示啟動了
預設的埠是9000, 開啟瀏覽器訪問一下 http://localhost:9000/ , 一切正常的話你應該可以看到這個介面
這樣就表示啟動成功了, 預設的帳號密碼均是admin, 儘管我電腦的作業系統是英文版的, 但我還是比較願意看到中文版的sonar, 所以這裡我要先去將它中文化, 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
- 從已經安裝的JRE中選擇新的JRE並點選OK
方法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>