官网地址:https://www.sonarqube.org
服务器端下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
客户端工具下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
中文插件地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh
分支插件地址:https://github.com/mc1arke/sonarqube-community-branch-plugin
1、准备工作
[root@localhost ~]$ sysctl -w vm.max_map_count=262144 #max_map_count 必须大于等于 262144
[root@localhost ~]$ sysctl -w fs.file-max=65536 #file-max 必须大于等于 65536
[root@localhost ~]$ ulimit -n 65536 #运行sonarqube的用户能够打开 65536 文件描述符
[root@localhost ~]$ ulimit -u 2048 #运行sonarqube的用户能够打开 2048个线程
[root@localhost ~]$ cat >> /etc/security/limits.conf << END
app soft nofile 65536
app hard nofile 65536
app - nproc 2048
END
2、下载并启动
[root@localhost ~]$ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
[root@localhost ~]$ unzip sonarqube-7.7.zip && mv sonarqube-7.7 /usr/local/
[root@localhost ~]$ ln -s /usr/local/sonarqube-7.7 /usr/local/sonarqube
[root@localhost ~]$ chown app.app /usr/local/sonarqube-7.7 -R #app用户对此目录有读写权限
[root@localhost ~]$ su - app
[app@localhost ~]$ cd /usr/local/sonarqube/
[app@localhost sonarqube]$ vim conf/sonar.properties #配置数据库和web登录信息
sonar.jdbc.url=jdbc:mysql://192.168.0.147:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false #数据库连接地址
sonar.jdbc.username=dev #数据库账号
sonar.jdbc.password=xxxx #数据库密码
sonar.sorceEncoding=UTF-8
sonar.login=admin #web页面注册的账号
sonar.password=admin #web页面注册的密码
##启动服务
[app@localhost sonarqube]$ cd /usr/local/sonarqube/bin/linux-x86-64/
[app@localhost linux-x86-64]$ sh sonar.sh start
##下载插件,并重新启动
[app@localhost ~]$ cd /usr/local/sonarqube/extensions/plugins/
[app@localhost plugins]$ wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.27/sonar-l10n-zh-plugin-1.27.jar #下载中文插件
[app@localhost plugins]$ wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.0.2/sonarqube-community-branch-plugin-1.0.2.jar #下载分支插件
[app@localhost plugins]$ wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.0.2/sonarqube-community-branch-plugin-1.0.2.jar #下载分支插件
[app@localhost plugins]$ \cp sonarqube-community-branch-plugin-1.0.2.jar sonar-l10n-zh-plugin-1.27.jar /usr/local/sonarqube/lib/common #将插件下载到lib/common 目录下
[app@localhost plugins]$ cd /usr/local/sonarqube/bin/linux-x86-64/
[app@localhost linux-x86-64]$ sh sonar.sh restart #重启服务
备注:
①将下载好好的插件jar包移动到sonarqube安装家目录下的 extensions/plugins
和 lib/common
目录下,重启sonarqube。
②在sonarqube 7.7 以上版本中将不在支持mysql的驱动,所以我这边安装的 sonarqube 7.7 版本。
3、web登录
http://192.168.0.147:9000/ #用户名和密码都是admin
1、生成token令牌
配置 --> 权限–> 用户 --> 更新令牌 --> 生成令牌,令牌名称任意写 --> 生成
2、开启token登录认证
配置 --> 通用配置–> 权限 --> 将"Force user authentication"开关打开,并保存。
[root@localhost ~]$ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip
[root@localhost ~]$ unzip sonar-scanner-cli-4.4.0.2170-linux.zip && mv sonar-scanner-cli-4.4.0.2170-linux /usr/local/
[root@localhost ~]$ ln -s /usr/local/sonar-scanner-cli-4.4.0.2170-linux /usr/local/sonar-scanner
[root@localhost ~]$ cd /usr/local/sonar-scanner/
[root@localhost sonar-scanner]$ vim conf/sonar-scanner.properties
sonar.host.url=http://192.168.0.147:9000 #服务器端地址
sonar.login=94078e65f4266c5b1394b93f5caf90f2664c317a #登录服务器token
sonar.sourceEncoding=UTF-8 #字符集
##克隆代码并测试
[app@localhost ~]$ git clone --depth 1 [email protected]:gateon/momwow.git
[app@localhost ~]$ cd momwow
[app@localhost momwow]$ /usr/local/sonar-scanner/bin/sonar-scanner \
-Dsonar.host.url=http://192.168.0.147:9000 \
-Dsonar.projectName=momwow \
-Dsonar.projectKey=java \
-Dsonar.resource=. \
-Dsonar.login=94078e65f4266c5b1394b93f5caf90f2664c317a
##简化版本,因在配置文件中指定了服务器端的url和登录token,所以可以省略
[app@localhost momwow]$ /usr/local/sonar-scanner/bin/sonar-scanner \
-Dsonar.projectName=momwow \
-Dsonar.projectKey=java \
-Dsonar.resource=.
备注:更多参数地址
1、jenkins集成sonar,下载sonarQube插件
2、进入系统管理 --> 系统设置 --> SonarQube servers,选择Add SonarQube,填写信息
name:自定义即可
ServerUrl:sonar服务地址
Server authentication token: 在sonar服务中生成的令牌token,也就是94078e65f4266c5b1394b93f5caf90f2664c317a
3、在jenkins中新建job,首先需要配置从git仓库中拉取代码,选择要分析的分支
4、设置执行的maven命令,如 选择root Pom文件,设置执行mvn命令:clean install -Dmaven.test.skip=true
5、接下来选择Additional Behaviours,新增post steps ,其他数值可以默认,Analysis properties设置如下的
sonar.projectKey={project-key}
sonar.projectName={project-name}
sonar.peojectVersion=1.0
sonar.language=java
sonar.sources=$WORKSPACE/
sonar.java.binaries=$WORKSPACE/{project-name}/target/
当然也可以选择login和pwd的方式
配置信息说明:
sonar.host.url sonarqube的URL地址
sonar.login sonar用户名
sonar.password 指定sonar用户的密码
sonar.projectName 在sonar上显示的项目名称
sonar.projectVersion 在sonar上显示的版本信息
sonar.projectKey sonar的项目关键字
sonar.sources 包含pom.xml的maven项目相对目录
sonar.java.binaries java编译后的文件目录
设置完成以后,可以进行构建,查看构建的日志记录信息没有异常即可。