SonarQube
SonarQube的作用
代码分析
SonarQube安装和配置
下载
在SonarQube的下载页面:https://www.sonarqube.org/downloads/,下载需要的版本。
下载SonarQube Scanner:Sonar插件
http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
安装SonarQube
- 解压SonarQube
unzip –d /opt/sonarqube-6.7.7 sonarqube-6.7.7.zip
- 解压SonarQube Scanner
unzip –d /opt sonar-scanner-cli-4.2.0.1873-linux.zip
配置SonarQube
- 创建数据库(MSYQL)
CREATE DATABASE sonar6 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON sonar6.* TO 'sonar'@'%%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
- 修改/etc/profile,在末尾添加
export SONAR_HOME=/opt/sonarqube-6.7.7
export PATH=$PATH:$SNOAR_HOME/bin/linux-x86-64
export SONAR_RUNNER_HOME=/opt/sonar-scanner-4.2.0.1873-linux/
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
- 给文件夹分配权限,目前直接分配777最佳
chmod –R 777 /opt/sonarqube-6.7.7
- 给/opt/sonarqube-6.7.7/bin/linux-x86-64 目录下的文件分配可执行权限
chmod a+x sonar.sh wrapper
- 添加用户
adduser sonar
- 分配执行权限,此处如果报错,JDK也需要分配执行权限
chown -R sonar /opt/sonarqube-6.7.7
- 配置文件修改
- 文件位置:/opt/sonarqube-6.7.7/conf/sonar.properties
将下面的拷贝进去,主要修改数据库连接地址即可
#访问端口
sonar.web.port=4399
#ELASTICSEARCH端口
sonar.search.port=8999
#数据库连接地址
sonar.jdbc.url=jdbc:mysql://192.168.6.49:3306/sonar6?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#数据库用户名
sonar.jdbc.username=sonar
#数据库密码
sonar.jdbc.password=123456
#字符集编码
sonar.sorceEncoding=UTF-8
#web页面注册的账号
sonar.login=admin
#web页面注册的密码
sonar.password=admin
- 文件位置:/opt/sonar-scanner-4.2.0.1873-linux/conf/sonar-scanner.properties
#sonarQube地址
sonar.host.url=http://192.168.7.153:4399
#数据库连接地址
sonar.jdbc.url=jdbc:mysql://192.168.6.49:3306/sonar6?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#数据库用户名
sonar.jdbc.username=sonar
#数据库密码
sonar.jdbc.password=123456
#字符集编码
sonar.sorceEncoding=UTF-8
#web页面注册的账号
sonar.login=admin
#web页面注册的密码
sonar.password=admin
启动SonarQube
- 执行命令
su - sonar
cd /opt/sonarqube-6.7.7
./bin/linux-x86-64/sonar.sh start
- 查看日志
/opt/sonarqube-6.7.7/logs下的日志是否报错
es.log可能会报如下错误,不影响使用,不需要处理
- 页面访问
地址:http://ip:4399
用户名密码 admin/admin
Jacoco
Jacoco的作用
代码覆盖率排查
根据目前点击的情况,进行代码覆盖率的排查
Jacoco的安装和配置
下载
在Jacoco的下载页面:http://www.eclemma.org/jacoco/index.html获取版本
安装Jacoco
- 解压文件
unzip –d /opt/jacoco jacoco-0.7.4.201502262128.zip
配置Jacoco
- 修改tomcat的
if [ "$1" = "run" ]; then
JAVA_OPTS="-javaagent:XXX/lib/jacocoagent.jar=destfile=XXX/xxx/jacoco.exec"
elif [ "$1" = "start" ]; then
JAVA_OPTS="-javaagent:XXX/lib/jacocoagent.jar=destfile=XXX/xxx/jacoco.exec "
fi
export JAVA_OPTS
XXX代表jacoco的位置,xxx是自定义文件夹,建议按项目进行设置
- 查看是否启动成功
- 刷新目录
查看destfile下是否生成了jacoco.exec
注意!!!:做功能测试时,需要关闭tomcat获取结果文件jacoco.exec,不能使用用kill -9,否则不能生成结果,使用kill [进程号],或者先把文件拷贝出来
代码覆盖率查看
非maven的项目
- 下载源码
包含Java文件及其他三方库等,源码包中需包含已经编译好的Class文件,如图所示。如果没有Class文件则可以从伺服服务器中将对应的Class文件下载到对应文件夹 - 新增配置
在项目文件中新增Sonar项目配置文件:sonar-project.properties,并在文件中设置项目的参数,供Sonar读取,以及Class文件的地址和结果文件的地址,供Sonar-Runner读取
#项目主键,必须唯一
sonar.projectKey=projectName
#项目名称,和上面可以一致
sonar.projectName= projectName
#项目的开发语言
sonar.language=java
#项目的版本
sonar.projectVersion=1.0
#Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
#Since SonarQube 4.2, this property is optional if sonar.modules is set.
#If not set, SonarQube starts looking for source code from the directory containing
#the sonar-project.properties file.
sonar.sources=.
#扫描的文件目录
sonar.java.binaries=C:/Users/Administrator/Desktop/codes/web/yyxw/WebRoot/WEB-INF/classes/com
#编码
sonar.sourceEncoding=UTF-8
#代码覆盖率工具
sonar.java.coveragePlugin=jacoco
#代码覆盖率结果位置
sonar.jacoco.reportPath=jacoco.exec
#代码覆盖率结果位置
sonar.jacoco.itReportPath=jacoco.exec
#可加可不加的参数
sonar.jacoco.reportMissing.force.zero=false
- 拷贝jacoco.exec到目录下
- 在源码目录下执行命令
sonar-scanner
Maven项目
后续补充
其他配置
Mysql配置
[mysqld]
innodb_log_file_size = 1024M
max_allowed_packet = 128M