天天看點

sonar6.7部署用于ideal的sonarline

說明

因為受限于不能通過sonarline(ideal插件)配置sonar,于是自己在本機或者雲伺服器部署soanr服務,用于ideal工具本地能在編譯階段發現不符合sonar規範問題,及時解決問題,而不是放到公司sonar檢查,一下好幾千上萬個的不規範問題,直接整崩潰。這種方式也有助于提高代碼品質和養成良好的寫代碼習慣。

sonar寫稿日期時最新版是8.3,為什麼使用sonar6.7 因為此版本是長期支援版,且支援mysql5.6。目前7.9及其以上不支援mysql了。

關于版本選擇問題還有疑問,可以參見sonarqube官網對應版本環境準備介紹。

環境準備

  1. 要求mysql5.6,需要建立sonar使用者(非root使用者就行,建議建立sonar)
  2. 需要jdk1.8
  3. 硬體要求,主要是記憶體2G以上,其他CPU、磁盤正常水準就行
  4. 下載下傳sonarqube6.7、mysql5.6、jdk8
  • sonarque6.7.7下載下傳位址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.7.zip
  • mysql5.6下載下傳位址:https://downloads.mysql.com/archives/get/p/23/file/MySQL-5.6.27-1.el7.x86_64.rpm-bundle.tar(此版本是用于centos7,綜合包,可以根據自己的環境選擇下載下傳使用)
  • jdk8大部分環境應該有,沒有自行在oracle官網下載下傳

mysql5.6安裝配置

window安裝比較簡單直接在https://downloads.mysql.com/archives/community/下選擇對應環境和版本,下載下傳exe包,按引導安裝即可,這裡不做過多解釋。以下主要介紹下centos7.x環境下安裝mysql5.6

  1. 下載下傳 rpm包,下載下傳下圖中的RPM-bundle(包含所有rpm)或者直接下載下傳server和client的rpm包,因為也隻需要用這兩個包。
  • 位址:https://downloads.mysql.com/archives/community/ 可能下載下傳需要注冊oracle賬号,有就直接登入
    sonar6.7部署用于ideal的sonarline
  1. 上傳或者直接wget 位址.rpm到服務端,安裝過程如下
  • 先檢查是否安裝過
注:一定要将mariaDB包和自帶mysql包解除安裝幹淨,否則安裝時出現各種奇妙錯誤,導緻失敗。
#rpm -qa | grep -i mariadb //查詢安裝的MariaDB  用rpm -e xxx 進行解除安裝
rpm -qa |grep -i mysql
           
  • 解除安裝
yum remove mysql  # yum解除安裝指令
rpm -e mysql-community-xxxx  #報錯用   rpm -ev --nodeps  xxxxx
whereis mysql  # 檢查未解除安裝幹淨的目錄 或者 使用find / -name mysql
rm -rf /var/lib/mysql  # 删除對應目錄
rm -rf /etc/my.cnf # 解除安裝後/etc/my.cnf不會删除,需要進行手工删除
# 有時候不在etc下可以 find / -name my.cnf 查找

#删除服務
chkconfig --list | grep -i mysql          //檢視服務
chkconfig --del mysql                     //删除服務

rpm -qa|grep -i mysql  # 再次檢查是否還有沒解除安裝的
           
  • 安裝
注:先裝好依賴,再裝mysql。即使順序出錯,裝完依賴一定要解除安裝mysql并重新裝mysql,否則mysql裝上了也會出現各種錯誤。
yum -y install autoconf
#-i是安裝,-v是列出更多詳細資訊,-h是在安裝時列出hash标記
#rpm -ivh MySQL-client-5.6.27-1.linux_glibc2.5.x86_64.rpm
#把mysql 的配置檔案複制到指定目錄下:
cp  /usr/share/mysql/my-default.cnf /etc/my.cnf
#rpm -ivh MySQL-server-5.6.27-1.linux_glibc2.5.x86_64.rpm 
           
  • 初始化MySQL及設定密碼
service mysql start
cat /root/.mysql_secret,複制密碼
mysql -uroot -p初始密碼
set PASSWORD=PASSWORD('123456');
quit;
service mysql restart

# 免密登入修改密碼方式
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
select Host, User, Password,password_expired from user where user='root' and host='root' or host='localhost';
update user set password=PASSWORD('Passw0rd') where user='root' and host='root' or host='localhost';
flush privileges;
quit;
service mysql restart
           
  • 建立賬号,授權遠端
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER 'sonar' IDENTIFIED BY 'sonar_1234';

GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar_1234';

GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar_1234';

FLUSH PRIVILEGES;

遠端連接配接還是報錯可以在 /etc/my.cnf下添加 bind-address = 0.0.0.0
           

windows環境

  1. 安裝
  • 直接将sonarqube-6.7.7.zip解壓到自定義目錄下
  1. 配置
  • 解壓根目錄下,conf下sonar.properties配置修改
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.web.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.url=jdbc:mysql://123.56.26.20:3308/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=127.0.0.1
sonar.web.port=9000
           
  • 自定義jdk版本配置wrapper.conf
# Path to JVM executable. By default it must be available in PATH.
# Can be an absolute path, for example:
#wrapper.java.command=/path/to/my/jdk/bin/java  #自定義路徑java
wrapper.java.command=java   #預設環境下的java
           
  • 啟動

    安裝路徑\bin\windows-x86-64\StartSonar.bat 輕按兩下

centos7.x環境

  1. 安裝
  • 直接将sonarqube-6.7.7.zip解壓到自定義目錄下
  1. 配置
  • 配置conf下sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.web.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.url=jdbc:mysql://123.56.26.20:3308/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=127.0.0.1
sonar.web.port=9000
           
  • 自定義jdk版本配置wrapper.conf
# Path to JVM executable. By default it must be available in PATH.
# Can be an absolute path, for example:
#wrapper.java.command=/path/to/my/jdk/bin/java  #自定義路徑java
wrapper.java.command=java   #預設環境下的java
           
  • 啟動
sh sonarqube-6.7.7\bin\linux-x86-64\sonar.sh start # 停止:stop 重新開機:restart
           
  • 初始化soanr

    通路 http://127.0.0.1:9000

    登入:admin admin

    根據引導生成token,儲存好token

    可以開始使用了

ideal中配置使用sonarline

sonar6.7部署用于ideal的sonarline
  • 填入生成的token
    sonar6.7部署用于ideal的sonarline
  • 使用
    sonar6.7部署用于ideal的sonarline

    1、全局使用,右鍵工程,選擇sonarline掃描,結果檢視在report欄

    2、單個檔案使用,右鍵檔案,選擇sonarline掃描,結果檢視在current file欄

    可設定成自動掃描,這樣在寫代碼的時候會及時生成結果,如圖開啟

    sonar6.7部署用于ideal的sonarline
    3、每個生成結果詳細的規則說明在右側的rule裡
    sonar6.7部署用于ideal的sonarline
    4、等級劃分
    sonar6.7部署用于ideal的sonarline

繼續閱讀