1. SonarQube 简介2. 安装 SonarQube
2.1 环境要求2.2 安装 MySQL2.3 在 MySQL 创建 sonar 数据库2.4 安装 SonarQube 3. Sonarqube 登录配置
3.1 登录 sonar3.2 创建 token 4. Sonarqube 代码审查配置
4.1 安装 SonarQube Scanner 插件4.2 安装 SonarQube4.3 添加 SonarQube 凭证4.4 Jenkins 进行 SonarQube 配置 5. 在项目添加 SonarQube 代码审查(非流水线项目)
5.1 添加代码审查步骤5.2 测试错误代码5.3 注意 6. 在项目添加 SonarQube 代码审查(流水线项目)
6.1 项目根目录下,创建 sonar-project.properties 文件6.2 修改 Jenkinsfile,加入 SonarQube 代码审查阶段6.3 把更改后的 sonar-project.properties 和 Jenkinsfile 进行提交6.4 修改 jdk 版本6.5 开始构建 web_demo_pipeline6.5 查看 sonarqube
1. SonarQube 简介
SonarQube 是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持 java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy 等二十几种编程语言的代码质量管理与检测,底层使用 elasticsearch 作为代码检索工具。
官网:https://www.sonarqube.org/
2. 安装 SonarQube 2.1 环境要求| 软件 | 服务器 | 版本 |
|---|---|---|
| JDK | 192.168.10.30 | 1.8 |
| MySQL | 192.168.10.30 | 5.7 |
| SonarQube | 192.168.10.30 | 6.7.4 |
**参考:**
数据库简介与 Mysql 服务基础
需要远程连接授权
2.3 在 MySQL 创建 sonar 数据库mysql -uroot -p123456 #----------------------------------- mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> create database sonar; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sonar | | sys | +--------------------+ 5 rows in set (0.00 sec)2.4 安装 SonarQube
下载安装包
https://www.sonarqube.org/downloads/http://49.232.8.65/sonarqube/sonarqube-6.7.4.zip
解压 sonar,并设置权限
yum install unzip -y
unzip sonarqube-6.7.4.zip
mkdir /opt/sonar
mv sonarqube-6.7.4testtargettesttarget${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: '0b127895-eb97-4f8f-b471-1277e5549b54', url: 'git@192.168.10.20:test-group/web_demo.git']]])
}
}
stage('code checking') {
steps {
script {
//引入了 sonarqube-scanner 工具
scannerHome = tool 'sonar-scanner'
}
//引入了 sonarqube 服务器系统环境
withSonarQubeEnv('sonarqube') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
stage('deploy item') {
steps {
deploy adapters: [tomcat8(credentialsId: '1cf9c5dd-8e2d-4eb6-8c00-bb60e0f027ca', path: '', url: 'http://192.168.10.40:8080/')], contextPath: null, war: 'target/*.war'
}
}
}
post {
always {
emailext(
subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',body: '${FILE,path="email.html"}', to: '1520509800@qq.com'
)
}
}
}
6.3 把更改后的 sonar-project.properties 和 Jenkinsfile 进行提交
6.4 修改 jdk 版本
和非流水线里面一样,需要修改 jdk 版本。
6.5 开始构建 web_demo_pipeline



