需求:代碼覆蓋率
1.起先的目的是為了看代碼覆蓋率 實踐的工具是jacoco.實踐用的是命令行的方式
2.后又了解到sonar 可以做代碼質量分析 可以更進一層的分析代碼
----------------------------------------------------實踐步驟-----------------------------------------------------------------
1.java環境准備 1.8
2.下載SonarQube安裝包-解壓即可,官網下載地址https://www.sonarqube.org/downloads/
3.MySql數據庫,新建一個數據庫sonar create database sonar;
4.SonarQube安裝目錄E:\sonarqube-7.0\sonarqube-7.0\conf\sonar.properties配置文件
#----- MySQL 5.6 or greater
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
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
5.點擊執行E:\sonarqube-7.0\sonarqube-7.0\bin\windows-x86-64\StartSonar.bat,打開http://localhost:9000,如果顯示sonar主頁,則sonar安裝成功。
6.sonar主頁,點擊配置-應該市場-搜索 下載JAVA相關的:Checkstyle、Findbugs、PMD 下載完后重啟
7.漢化sonar 搜索chinese Pack
8.下載sonar-scanner-解壓即可:(這個工具是對源碼進行掃描,並將結果保存到數據庫以便用上面的sonarqube進行分析)
下載地址: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
9. sonar-scanner配置文件修改:
修改配置文件E:\sonarqube-7.0\sonar-scanner-4.2.0.1873-windows\conf\sonar-scanner.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=123456
10.環境變量配置
新建:
(1)name : SONAR_HOME value: E:\sonarqube-7.0\sonarqube-7.0
(2)name: SONAR_RUNNER_HOME value:E:\sonarqube-7.0\sonar-scanner-4.2.0.1873-windows
打開path,輸入%SONAR_HOME%\bin;
打開path,輸入%SONAR_RUNNER_HOME%\bin;
11.打開CMD窗口,輸入 sonar-scanner -version,看到下圖說明成功
12.找到需要掃描的項目,在項目的根目錄下新建 sonar-project.properties文件,輸入以下信息
sonar.projectKey=My_First_Maven_Project
sonar.projectName=My_First_Maven_Project
sonar.version=0.0.1-SNAPSHOT
sonar.sources=src --寫相對路徑
sonar.sources=target --寫相對路徑
#sonar.sources=E:\Eclipsefile_myh\My_First_Maven_Project\src\main\java
#sonar.java.binaries=E:\Eclipsefile_myh\My_First_Maven_Project\target\classes
說明:
sonar.projectKey:SonarQube服務器每次添加一個項目時要求填寫一個項目名和關鍵字,此處是關鍵字
sonar.projectName:項目名,就和你的項目名稱保持一致就好了
sonar.version:項目版本
sonar.sources:要掃描的源碼路徑,我在此處就直接寫項目的絕對路徑了 src\main\java 源碼路徑
sonar.java.binaries:項目生成的class文件的路徑 class 文件的路徑
13設置成功后,啟動sonarqube服務 127.0.0.1:9000頁面 正常訪問
14.在cmd進入項目所在的根目錄,輸入命令:sonar-scanner 開始掃描 (sonar-scanner -X 輸出的信息更詳情一點。。。推薦使用)
15.打開http://localhost:9000/,我們會看到主頁出現了分析項目的概要圖
------------------------------------------軟件版本----------------------------------------------------
版本:
JDK 1.8.0
sonarqube-7.0
sonar-scanner-2.8
sonar-java-plugin-5.6.0.15032
-------------------------------------------------實踐成果----------------------------------------------
----------------------------------------------遇到的問題----------------------------------------------
報錯一:
報錯參考資料:https://blog.csdn.net/weixin_33877885/article/details/92145638
報錯:
java.lang.IllegalStateException: Fail to download the plugin (java, version 5.6) from https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar (error is : Fail to download: https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar (no proxy))
其中:
https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar
自己電腦 安裝的版本:sonar-java-plugin-5.1.0.13090.jar
路徑----E:\sonarqube-7.0\sonarqube-7.0\extensions\plugins
下載最新版本即可
報錯二:
5、啟動sonarqube 出現Process exited with exit value [es]: 1異常 查看logs 的es的log
java.lang.IllegalStateException: failed to obtain node locks, tried [[D:\zz\sonarqube-7.6\data\es5\sonarqube]] with lock id [0];
failed to obtain node locks, tried [[E:\sonarqube-7.0\sonarqube-7.0\data\es5\sonarqube]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?
被鎖定了,要么重啟要么注銷---------自己還沒實踐
------------------------------------------------------eclipse 使用技巧-------------------------------------------------------------------------
1.src/main/java 源碼路徑
2.src/test/java 單元測試用例的路徑
3.單元測試框架有:junit4,、testNg 使用的是junit4
4.項目右鍵--maven --update project 更新項目
5.project --clean 重新生成編譯后的class文件
6. 項目右鍵--build path--configure build path --add libraries --junit--junit4
7.pox.xml配置文件
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>