1.准备环境
- jdk8
- sonarqube7.2.1
2.配置
2.1 配置sonarqube
解压 sonarqube,编辑 conf 目录下的 sonar.properties 文件,配置数据库连接和 sonarqube 的登录信息
#数据库配置
sonar.jdbc.url=jdbc:mysql://xxxx:3306/tableName?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=xxx
sonar.jdbc.password=xxxx
# 连接池根据自己实际情况配置
sonar.jdbc.maxActive=30
sonar.jdbc.maxIdle=5
sonar.jdbc.minIdle=2
sonar.jdbc.maxWait=5000
sonar.jdbc.minEvictableIdleTimeMillis=600000
sonar.jdbc.timeBetweenEvictionRunsMillis=30000
#web server配置
#jvm配置
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
#绑定主机ip配置
sonar.web.host=0.0.0.0
#访问端口配置
sonar.web.port=9000
#连接配置
sonar.web.http.maxThreads=50
sonar.web.http.minThreads=5
sonar.web.http.acceptCount=25
#session超时配置,单位分钟,不能多于3个月
sonar.web.sessionTimeoutInMinutes=4320
#计算引擎配置
#jvm配置
sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
#worker个数,需要考虑资源的消耗
sonar.ce.workerCount=1
#Elasticsearch配置
#jvm
sonar.search.javaOpts=-Xmx1G -Xms256m -Xss256k -Djna.nosys=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly XX:+HeapDumpOnOutOfMemoryError
#http port and host
sonar.search.port=9001
sonar.search.host=127.0.0.1
#登录设置
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
依次以管理员身份运行 “D:\sonarqube-7.2.1\bin\windows-x86-64” 目录下的前 3 个 bat 命令,其中 StartSonar.bat是启动 sonarqube 服务。在浏览器输入 http://localhost:9000,如果看到如下页面则配置成功。

注意,由于首次连接数据库的原因,需要等待一段时间。
2.2 运行 sonarqube
使用默认密码,admin, admin登录。

安装汉化包(非必须)

安装完成重启后的页面

3.代码分析
3.1 Analyzing with SonarQube Runner
该方法适用于所有不同架构的项目,包括没有使用任何源代码管理工具的项目形式,以及使用各种不同代码管理工具(SVN、Git、ClearCase 等)和编译工具(ant,maven)的项目形式,它都能够适用。
下载工具
解压安装后,将 bin 配置到系统的环境变量里去 。
3.1.1 配置sonar-scanner
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
3.1.2项目中配置
在项目工程下新建 sonar-project.properties 配置文件
# must be unique in a given SonarQube instance 项目的key(自定义)
sonar.projectKey=webapp
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1. 项目名称
sonar.projectName=webapp
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set. 项目路径
sonar.sources=.
sonar.language=java
#sonar.java.binaries=项目路径/target/classes
sonar.java.binaries=E:\\liveeasy_web_deploy\\target\\classes
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

检查是否配置成功:

切换到项目主目录下命令行运行:sonar-runner完成代码扫描

查看结果 http://localhost:9000

3.2 Analyzing with Maven
通过 mvn sonar:sonar 分析代码将结果提交到数据库中,SonarQube查询展示。
3.2.1 方式1:设置 maven
安装并配置 maven,配置文件为 setting.xml,添加数据配置
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</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>
<!-- Sonar服务器访问地址 -->
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
在当前 maven 项目目录下运行 mvn sonar:sonar,完成即可在 SonarQube web 页面查看结果
3.2.2 方式2:添加插件
显式的将 sonar 绑定到 maven 生命周期中,指定 maven 的 site 声明周期时,则会自动调用 sonar.sonar 命令
<plugin>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>5.1</version>
<executions>
<execution>
<id>sonar</id>
<phase>site</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
注意 sonar:sonar 必须单独执行。如果把 sonar:sonar 和其他 target 混在一起,比如 mvn clean installsonar:sonar,可能导致不可预期的问题。
4.在 idea 中使用 sonarLint
缺点是没有图形化界面
4.1 打开File->Settings->Plugins,搜索SonarLint插件
4.2 安装后重启
4.3 配置 maven,参考3.2.1的配置
4.4 分析代码

审查java代码的结果:

5.在 idea 中使用 SonarQube
5.1以管理员身份启动 SonarQube 服务器

5.2 添加 SonarQube 服务器
安装完 SonarLint 后添加 SonarQube 服务器

5.3 登录设置

5.4 设置SonarLint绑定的服务器




5.5 设置sonar-project.properties文件
5.6 分析主要代码获取结果

4万+



被折叠的 条评论
为什么被折叠?



