centos安装使用sonarqube
架构
环境
centos 7
mysql
sonarqube7.1
下载
yum install unzip -y |
进入mysql创建数据库
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; |
cd /opt/sonarqube-7.3/conf/
vi sonar.properties
#数据库用户 |
##启动su sonar
/opt/sonarqube-7.3/bin/linux-x86-64/sonar.sh start
登录 访问地址http://172.27.82.119:9000/
用户名和密码都是admin
然后紧接着官方引导教程
- 输入name做为tokenn
matosiki
生成token:6a831d80491fe2e2d43c5d19270741c2b619ac05
把token复制保存下来 - 选择项目得开发语言
java>maven
执行测试mvn sonar:sonar \
-Dsonar.host.url=http://172.27.82.119:9000 \
-Dsonar.login=d81cb0f66e3ec4dd87adb782c6bdc67f0f7fe96c
- 安装插件
安装汉化包Administrator中MarketPlace搜索chinese
Checkstyle
重启生效
maven 配置sonar使用
配置settings.xml文件<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
jenkins 插件使用sonar
jenkins安装插件
系统管理—>插件管理,搜索一下sonar安装配置sonar
系统管理—>系统设置,配置name和server url
粘贴保存下的token
- 配置全局工具
下载地址
wget http://tar.matosiki.site/zip/sonar-scanner-2.8.zip |
jekins中配置:
global tool configuration > SonarQube Scanner>add>
SONAR_RUNNER_HOME=/opt/sonar-scanner-2.8 |
- 选择项目
项目构建>配置>构建> Add build step>Execute SonarQube Scanner
execute shellexport MAVEN_HOME=/opt/apache-maven3.5
export PATH=$PATH:$MAVEN_HOME/bin
cd ${WORKSPACE}
mvn install
###千万不要在Task to run中输入值sonar.projectKey=spring-boot-example
sonar.projectName=spring-boot-example
sonar.projectVersion=1.0
sonar.language=java
sonar.sources=${WORKSPACE}
sonar.java.binaries=${WORKSPACE}
- 在项目中配置 project properties 文件
编辑sonar-project.propertiessonar.projectKey=org.sonarqube:spring-boot-example
#在SonarQube中展示的项目名称
sonar.projectName=项目名称
#在SonarQube中展示的版本号
sonar.projectVersion=1.0
#设置源代码的路径
sonar.sources=/var/lib/jenkins/workspace/spring-boot-example/spring-boot-email/src/
#设置字节码文件的路径
sonar.binaries=/var/lib/jenkins/workspace/spring-boot-example/spring-boot-email/target/classes
sonar.language=java
sonar.sourceEncoding=UTF-8
#设置字报告存放的路径
sonar.jacoco.itReportPath=/var/lib/jenkins/workspace/spring-boot-example/spring-boot-email/reports/jacoco.exec
maven检查代码命令mvn clean verify sonar:sonar
或者
mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar
报错
elasticsearch 错误
解决方案
查看es日志
cat /opt/sonarqube-7.1/logs/es.log
can not run elasticsearch as root
新建sonar用户 和sonar组
sudo groupadd sonar |
failed to obtain node locks
查看进程
ps aux | grep ‘elastic’
获取pid
kill -9 90123
删除elasticsearch data文件
Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
在mysql里设置binlog_format为ROW,此时binlog会增大,但是一般来说对数据复制支持的更好,建议单机高性能环境下使用。
删除初始化得database*sonarvi /etc/my.conf
binlog_format=ROW