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可能会报如下错误,不影响使用,不需要处理

sonarqube 整合gitlab sonarqube 新代码覆盖率_linux

  • 页面访问

地址:http://ip:4399

用户名密码 admin/admin

sonarqube 整合gitlab sonarqube 新代码覆盖率_sonarqube 整合gitlab_02

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