前言 隨便寫寫,你們也就隨便看看,2020年,爭取拿個乒乓球小區冠軍。html
SonarQube是一個開源平臺,用於管理源代碼得質量。SonarQube不僅是一個質量數據報告工具,更是代碼質量管理平臺。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十幾種編程語言的代碼質量管理與檢測。 SonarQube能夠從如下七個維度檢測代碼質量,而做爲開發人員至少須要處理前5種代碼質量問題。java
(1) 不遵循代碼標準
SonarQube能夠經過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫。
(2) 潛在的缺陷
SonarQube能夠經過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢 測出潛在的缺陷。
(3) 糟糕的複雜度分佈
文件、類、方法等,若是複雜度太高將難以改變,這會使得開發人員 難以理解它們, 且若是沒有自動化的單元測試,對於程序中的任何組件的改變都將可能致使須要全面的迴歸測試。
(4) 重複
顯然程序中包含大量複製粘貼的代碼是質量低下的,SonarQube能夠展現 源碼中重複嚴重的地方。
(5) 註釋不足或者過多
沒有註釋將使代碼可讀性變差,特別是當不可避免地出現人員變更時,程序的可讀性將大幅降低 而過多的註釋又會使得開發人員將精力過多地花費在閱讀註釋上,亦違背初衷。
(6) 缺少單元測試
SonarQube能夠很方便地統計並展現單元測試覆蓋率。
(7) 糟糕的設計
經過SonarQube能夠找出循環,展現包與包、類與類之間的相互依賴關係,能夠檢測自定義的架構規則 經過SonarQube能夠管理第三方的jar包,能夠利用LCOM4檢測單個任務規則的應用狀況, 檢測耦合。
複製代碼
本文主要講述如何在windows系統搭建sonarQube及Jenkins自動構建,全部的環境請按照筆者的要求搭建,以便你們能夠成功搭建。node
(1)Java環境1.8
(2)Maven環境
(3)mysql5.6—8.0,該版本以外的Mysql會報異常
(4)node.js
(5)SonarQube7.6
(6)Sonar-Scanner/Runner
(7)SVN代碼管理倉庫
(8)Jenkins平臺
(9)navicat可視化數據庫工具
(10)Jenkins Plugins筆者已經下載好了,主要是由於防止不少人插件下載失敗,全部的安裝文件都放在了網盤中,可自取
複製代碼
雙擊安裝JDK,細節這裏就不說了,你們不會的能夠百度一下,安裝完JDK以後須要配置一下環境變量
複製代碼
一樣將maven的安裝包解壓到任意一個磁盤中,一樣咱們仍是要配置一下Maven的環境變量
複製代碼
安裝mysql以前確定有不少人會問我,爲何要說這些基礎的東西,要知道,仍是有不少帥氣的娃由於一些基礎得環境或者版本問題搞得
複製代碼
==腦袋都要撓禿咯!== mysql
1. 將文件解壓入到自定義的目錄下【mysql若是安裝不對得話,能夠百度下對應版本得安裝方式】
2. 配置my.ini,在根目錄下建立文件my.ini,並在文件中輸入如下代碼
[mysqld]
basedir ="C:\mysql-6.3-winx64" --此處配置本身得mysql路徑名
datadir ="C:\mysql-6.3-winx64\data" --此處配置本身得mysql路徑名
port=3306
server_id =10
character-set-server=utf8
[client]
port=3306
default-character-set=utf8
[mysqld_safe]
timezone="CST"
[mysql]
default-character-set=utf8
3. 配置環境變量, 將mysql/bin加入到PATH中
4. 找到cmd.exe,以管理員身份運行(確保是管理員)
5. 首先將MySQL加入到Windows的服務中,輸入命令:
mysqld --install
有時候沒有卸載乾淨,會提示The service already exists!
此時,以管理員身份運行cmd,
-輸入命令sc query mysql 查看名爲mysql的服務
-輸入命令sc delete mysql,刪除該mysql
-再執行mysqld --install 就能成功了
6. 開始初始化數據庫,輸入:
-mysqld --initialize --console
-mysqld --initialize --user=root --console (記住初使密碼)
7. 輸入:net start mysql,稍後你也能夠用net stop mysql關閉MySQL服務。
8. 而後就能夠進入MySQL了,輸入:mysql -u root -p,此時會要求你輸入密碼
9. alter user user() identified by "123456"; 改初使祕密
10. show databases ;展現數據庫列表;
11. use mysql 使用數據庫
12. show tables; 展現 表名
複製代碼
此處容易遇到兩個問題: 1.系統得C++環境問題致使得mysql安裝失敗,可使用下面的工具C++環境補全工具安裝C++環境; 2.數據庫安裝完成後要先建立一個名字爲==sonar==得數據庫,由於咱們在下面sonarQube配置得時候是初始化sonar數據庫得文件得。 若是沒遇到那麼各位娃都是棒棒的。 git
node.js也是必不可少得一環,若是沒有node.js環境,沒法對代碼中得Css文件進行掃描。
複製代碼
安裝方式因截圖太多,這裏參考node.js安裝教程 web
--仍是老套路,將壓縮包解壓後修改conf\sonar.properties-圖1配置文件,我這裏是本地
環境,若是是服務器上得Mysql,只須要將localhost轉換爲對應得IP便可
sonar.jdbc.url 數據庫鏈接地址
sonar.jdbc.username 登錄數據庫得用戶名
sonar.jdbc.password 登錄數據庫得密碼
--SonarQube啓動後默認得帳號和密碼都是admin
--關閉SonarQube服務-圖3(須要關閉任務管理器中得全部java項目)
--重啓sonarQube服務-圖4
--再次訪問http://localhost:9000,會稍微有點慢,由於要初始化數據庫信息(user中能夠查看到用戶信息
複製代碼
Sonar-Scanner是一個利用SonarQube服務端分析代碼得命令行工具,能夠把它簡單得理解爲SonarQube得客戶端。Sonar-Scanner分析完成後會將數據post到SonarQube得數據庫,從而在sonarQube中進行展現,便於分析。sql
--將下載好得sonar-Scanner解壓編輯其中得conf\sonar-scanner.properties文件
sonar.host.url爲咱們客戶端得訪問地址,帳號密碼都爲admin
--配置環境變量(路徑填寫你的安裝路徑)
新建變量,name=SONAR_SCANNER_HOME value=D:\sonar\sonar-scanner-2.5
打開path,輸入 %SONAR_SCANNER_HOME%\bin;
sonar-runner -version,出現如下信息,則表示環境變量設置成功
複製代碼
到這裏,相信又有不少娃兒說筆者太過於囉嗦了,爲何還不開始給老子掃描項目,莫急,磨刀不誤砍柴功,當萬事俱備得時候,掃描出BUG還不是分分鐘得事情。
說到代碼管理工具,首先想到得固然是git,gitlab,可是對於初學者來講Svn這種可視化得更適合,全部筆者這裏選擇了相對較爲簡單得Svn。
依然是跑到我給你們提供得工具庫中下載下來先,而後解壓,點擊下面得而這個可愛得小圖標,啓動咱們得Svn客戶端,而後建立一個倉庫,一直瘋狂點擊下一步就行了,就是這麼得easy。
複製代碼
建立一個本地倉庫
複製代碼
建立一個用戶,用來提交咱們得代碼,而後在咱們的文件夾下面建立一個文件夾來初始化咱們的代碼倉庫Check Out,這裏就很少囉嗦
複製代碼
你們能夠參考 SVN使用教程 數據庫
Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。
Jenkins功能包括:
一、持續的軟件版本發佈/測試項目。
二、監控外部調用執行的工做。
第一種啓動方法,切換到jenkins.war存放的目錄,輸入以下命令:
$ java -jar jenkins.war
若是須要修改端口可使用以下命令:
$ java -jar jenkins.jar--httpPort=8081
而後在瀏覽器中(推薦用火狐)輸入localhost:8081,localhost能夠是本機的ip,也能夠是計算機名。就能夠打開jenkins。
第二種方法是用tomcat打開
解壓tomcat到某個目錄,如/usr/local,進入tomcat下的/bin目錄,啓動tomcat
將jenkins.war文件放入tomcat下的webapps目錄下,啓動tomcat時,會自動在webapps目錄下創建jenkins目錄,在地址欄上須要輸入localhost:8080/jenkins。
這裏咱們就是採用第二種方法來搭建Jenkins,由於咱們是在windows上搭建得,因此只要把jenkins.war放到tomcat得wapapps下而後啓動Tomcat就能夠訪問Jenkins了
複製代碼
因爲不少得小夥伴在下載插件這一步就跪了,因此本衝也爲你們提供了已經下載好的插件,免費大甩賣,都在文末,自取,只須要將插件解壓放到家目錄.jenkins,替換掉plugins而後重啓就能夠了。 至此,基本上須要得環境都已經安裝完了,下面就開始咱們得掃描之旅吧。windows
1.進入E:\sonarqube-7.6\bin\windows-x86-64(你的sonarqube安裝目錄),
只要在項目工程目錄下新建sonar-project.properties文件並配置以下圖-1
2.點擊StartSonar.bat啓動sonar服務
3.進入項目所在得路徑下執行sonar-scanner命令進行代碼掃描-圖2
4.運行最終結果顯示EXECUTION SUCCESS即成功-圖3
5.客戶端查看代碼掃描結果-圖4
複製代碼
sonar-project.properties文件中的內容
複製代碼
以後在cmd下進入工程目錄下運行:sonar-scanner
複製代碼
在maven的conf下的settings.xml下
複製代碼
在<profiles></profiles>節點中添加以下代碼
複製代碼
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<!-- SERVER ON A REMOTE HOST -->
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
複製代碼
以後在cmd下進入工程目錄下運行:mvn clean install sonar:sonar
複製代碼
sonar-project.properties文件中的內容
複製代碼
sonar.projectKey=control
sonar.projectName=control
sonar.projectVersion=1.0
sonar.sources=src,WebContent
sonar.java.binaries=build\classes
sonar.sourceEncoding=UTF-8
複製代碼
以後在cmd下進入工程目錄下運行:sonar-scanner
複製代碼
jenkins推薦的插件安裝中沒有sonarqube的安裝,須要到系統管理-插件管理-可選插件中搜索sonarqube,sonarqube插件名是sonarqube scanner for jenkins,直接安裝,安裝成功後在系統管理-系統設置下就可看到sonarqube servers,便可配置
複製代碼
此處的安裝目錄填寫你node.js的所在路徑
複製代碼
如果用Git管理代碼倉庫的能夠參考以下配置
這裏是使用了Git來作源碼管理,gitlab做爲源碼庫 項目分支填寫master
複製代碼
代碼質量的統計,能夠幫助咱們判斷項目是否能夠投入生產環境
複製代碼
可根據實際的項目需求配置質量閥(sonar的默認配置)
下一篇文章:如何使用Jenkins構建搭載釘釘以及郵箱通知
我但願在看這個文章的你,在新的一年,順順利利,並可以朝着定下得目標衝呀。 重點來了: 喜歡得朋友能夠點個關注,今天這個文章真的是碼了我4個多小時呢,老腰都酸死了。
本篇文章所用到得全部工具都在本人得公衆號,【回覆】[sonarqube]免費領取。
CSDN連接地址:blog.csdn.net/lmarster/ar…