工具/環境 | 版本 |
---|---|
CentOS | CentOS 7.6(IP:192.168.88.45) |
SonarQube | 7.5 |
JDK | 1.8.0 |
MySQL | 5.7 |
參考:https://ken.io/note/centos-ja...java
參考:https://ken.io/note/centos-my...mysql
yum install -y wget zip unzip
sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -u 4096 sonarqube ulimit -n 65536 sonarqube
#建立帳號並受權 useradd sonar passwd sonar #授予sudo權限 visudo #在文件末尾增長 sonar ALL=(ALL) ALL
sonar 7.5版本必須在非root帳號下啓動
#進入mysql-shell mysql -u root -p #新建用戶 CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'Sonar@2019'; CREATE USER 'sonar'@'%' IDENTIFIED BY 'Sonar@2019'; #新建數據庫 CREATE DATABASE sonar; #賦予數據庫訪問權限 GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost'; GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'%'; #刷新權限 FLUSH PRIVILEGES; #退出 quit;
mkdir -p /usr/sonar mkdir -p /sonar/data mkdir -p /sonar/temp
#進入下載目錄 cd /home/downloads #下載軟件包 sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.5.zip #解壓 sudo unzip sonarqube-7.5.zip -d /usr/sonar/
#授予相關目錄權限 chown -R sonar:sonar /usr/sonar chown -R sonar:sonar /sonar
#修改profile文件 sudo vi /etc/profile #在文件末尾增長變量:SONAR_HOME export SONAR_HOME=/usr/sonar/sonarqube-7.5 #使變量生效 source /etc/profile #測試 echo $SONAR_HOME
#修改配置文件 sudo vi $SONAR_HOME/conf/sonar.properties #在配置文件開頭增長如下配置 #數據庫配置 sonar.jdbc.username=sonar sonar.jdbc.password=Sonar@2019 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useConfigs=maxPerformance&rewriteBatchedStatements=true&characterEncoding=utf8&useUnicode=true&serverTimezone=GMT%2B08:00 #文件配置 sonar.path.data=/sonar/data sonar.path.temp=/sonar/temp #Web配置 sonar.web.host=0.0.0.0 sonar.web.port=9000 sonar.web.context=/
這裏要強調的是,端口號須要>1000
,由於sonar啓動是使用的非root帳號,默認是不能使用1000如下的端口的,不然會啓動失敗linux
sudo firewall-cmd --add-port=9000/tcp --permanent sudo firewall-cmd --reload
#切換到sonar帳號 su sonar #啓動 sh $SONAR_HOME/bin/linux-x86-64/sonar.sh start #啓動完成會看到如下輸出 Starting SonarQube... Started SonarQube. #若是未完成啓動能夠使用console命令查看啓動過程當中的問題 sh $SONAR_HOME/bin/linux-x86-64/sonar.sh console
sonar支持的啓動參數: console | start | stop | restart | status | dump
若是啓動完成,可是依然不能訪問,能夠經過如下命令查看啓動日誌web
cat $SONAR_HOME/logs/web.log
成功啓動後,能夠訪問 http://192.168.88.45:9000
sql
這時候SonarQube會進行初始化,好比:初始化數據庫。初始化完成後將看到首頁shell
經過默認帳號密碼 admin
,admin
登陸SonarQube,這時候會彈出引導數據庫
輸入TokenName,而後點擊Generate
就會生成token,點擊Continue
而後選擇Java-Maven項目,這時候apache
token建立後,一旦窗口關閉就不能查詢,只能再次建立,因此咱們要先將token複製下來保存。centos
token建立:http://192.168.88.45:9000/account/security/
安全
本次咱們以Java項目做爲示例進行掃描,本機須要配置好了Java&Maven環境
參考:https://ken.io/note/java-quic...
若是已有Java項目能夠忽略這一步
mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DremoteRepositories=http://maven.aliyun.com/nexus/content/groups/public \ -DgroupId=io.ken.sonar \ -DartifactId=sonardemo \ -Dpackage=io.ken.sonar \ -Dversion=1.0
增長build節點,指定默認build動做以及JDK版本
<build> <defaultGoal>compile</defaultGoal> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
#進入項目根目錄 cd sonardemo #執行掃描 mvn sonar:sonar \ -Dsonar.host.url=http://192.168.88.45:9000 \ -Dsonar.login=8e359701283af794e8b77f3029863a1be7ad8ee4
掃描完成訪問:http://192.168.88.45:9000
便可看到掃描結果
點擊項目名字能夠查看掃描詳情
指標 | 簡介 |
---|---|
Bugs | bug個數及評分 |
Vulnerabilities | 安全漏洞個數及評分 |
Debt | 債務(代碼問題)持續時間 |
Code Smells | 輕微問題:代碼風格等等 |
Coverage | 單元測試覆蓋率 |
Duplications | 代碼重複率 |
Duplicated Blocks | 代碼重複塊數 |
本文首發於個人獨立博客:https://ken.io/note/sonarqube...