触发运行

集成 Idea Intellij

Idea 中安装 SonarLint 插件, 但仅限开发语言——Java,Js,PHP(不包括 Groovy)

安装

参考1 虽然 SonarQube自己提供了yum源 ,但是由于其是搭建在 sourceforge.net 上的。但是由于某些原因,sourceforge.net 在国内访问很不稳定,所以,不推荐yum安装(除非翻墙)。

  1. (可选)安装数据库(PostgreSQL、MySQL) 或使用既有的数据库。 SonarQube默认是有个嵌入式的H2数据库的,默认是H2数据库的数据存储位置是SonarQube安装目录的/data目录。

     -- PostgreSql
     CREATE USER sonar PASSWORD 'mypassword';
     CREATE DATABASE sonar WITH OWNER = sonar;
    
  2. 官网下载所需的zip包。保存到 /data/tmp 目录下。
  3. 解压

     mkdir /data/software/sonarQube
     unzip /data/tmp/sonar-3.7.4.zip -d /data/software/sonarQube/
    
  4. 修改配置文件

     vi /data/software/sonarQube/sonar-3.7.4/conf/sonar.properties
       sonar.web.port:                           19020
       sonar.jdbc.username:                  sonar
       sonar.jdbc.password:                   mypassword
       sonar.jdbc.url:                             jdbc:postgresql://10.1.10.105:1949/sonar
    
  5. 追加init.d脚本

     vi /etc/init.d/sonar
       #!/bin/bash
       # chkconfig: 345 20 80
       /data/software/sonarQube/sonar-3.7.4/bin/linux-x86-64/sonar.sh "$@"
     chmod u+x /etc/init.d/sonar
     chkconfig --add sonar
     chkconfig --list sonar
     service sonar                               # 确认脚本是否成功
     service sonar start
    
  6. 启动。注意:需要先停止旧版本的SonarQube(如果有的话。)

     service sonar start
    
  7. 升级。
    1. 复制 OLD_SONARQUBE_HOME/extensions/plugins 到新的目录中
    2. (可选)备份sonar数据库。
    3. 访问 http://10.1.10.212:19020/setup, 并点击 ”upgrade“ 按钮。

安装插件

登录sonarQube后,顶部右侧 "Administrator" -> SYSTEM/Update Center -> Available Plugins 可以找找可用的插件。比如:

  • Integration/LDAP
  • Localization/Chinese # 汉语语言包

使用Maven插件进行分析

参考:使用Maven进行分析分析参数列表使用企业数据库Sonar FAQ

执行以下mvn命令(无需在pom.xml中进行任何设定):

# 第二行开始后的配置参数是SonarQube分析所需的参数
mvn -Dmave.test.skip=true -DsonarHostURL=http://10.1.10.212:19020 sonar:sonar \
-Dsonar.host.url=http://10.1.10.212:19020 \
-Dsonar.jdbc.url=jdbc:postgresql://10.1.10.105:1949/sonar \
-Dsonar.jdbc.username=sonar \
-Dsonar.jdbc.password=sonar \
-Dsonar.exclusions=**/package-info.java,**/model/*.java,**/dao/*.java

解释: 上述命令会:

  1. 从Maven仓库查找最新的 org.codehaus.mojo:sonar-maven-plugin:LATEST:sonar maven插件,
  2. 该插件会查询sonarQube服务器的版本,使用与之匹配的 org.codehaus.sonar:sonar:maven-plugin:XX:sonar maven插件,
  3. 第二个插件会再到sonarQube服务器上读取相应的设置、并进行分析。

FIXME 可以进行代码Review?

maven 插件

mvn -U
    -Dsonar.host.url=http://10.1.10.100:9000/
    -Dsonar.jdbc.url=jdbc:postgresql://10.1.10.105:1949/sonar
    -Dsonar.jdbc.username=sonar
    -Dsonar.jdbc.password=sonar
    -Dsonar.exclusions=**/package-info.java,com/tc/his/api/model/*.java,com/tc/his/provider/dao/*.java
    clean compile sonar:sonar

SonarQube Scanner

参考 《Analyzing Source Code

sudo mkdir /usr/local/sonarqube
sudo unzip sonar-scanner-2.6.1.zip -d /usr/local/sonarqube/

sudo vi /etc/profile.d/xxx.sh
export SONAR_QUBE_SCANNER_HOME=/usr/local/sonarqube/sonar-scanner-2.6.1/
export PATH=$SONAR_QUBE_SCANNER_HOME/bin:$PATH

cd $PROJECT_ROOT
vi sonar-project.properties
sonar-scanner

sonar-project.properties 文件示例

sonar.host.url=http://test12.kingsilk.xyz:9000
sonar.projectKey=net.kingsilk:qh-wap-front
sonar.projectName=qh-wap-front
sonar.projectVersion=2.1.0
sonar.sources=\
  src/controllers,\
  src/directives,\
  src/filters,\
  src/services,\
  src/views,\
  src/index.js,\
  src/config.js
sonar.sourceEncoding=UTF-8
#sonar.exclusions=\
#  grails-app/controllers/xyz/kingsilk/qh/wap/controller/Test*.groovy