一、概述

安装SonarQube,参考链接:

https://www.cnblogs.com/xiao987334176/p/12011623.html

安装SonarQube Scanner,参考链接:

https://www.cnblogs.com/xiao987334176/p/12022294.html

二、安装插件

在可选插件中搜索 SonarQube 并安装它

Jenkins整合SonarQube-LMLPHP

三、插件配置

创建sonarqube token

登录到sonarqube服务器,http://192.168.31.7:9000

点击右侧账号图标-->我的账号-->安全

输入 jenkins,点击生成。

Jenkins整合SonarQube-LMLPHP

注意:这个输入框的字符串,可以随意。这里表示给jenkins使用的!切记要保存好!

创建jenkins token

点击 jenkins -->凭据 --> 系统 --> 全局凭据--> 添加凭据

Jenkins整合SonarQube-LMLPHP

输入在sonarqube中生成的token

Jenkins整合SonarQube-LMLPHP

配置 SonarQube Server

进入 Jenkins 系统管理 – 系统设置,配置 SonarQube Server 信息

由于 SonarQube 在本机运行,直接就是 http://localhost:9000

Jenkins整合SonarQube-LMLPHP

进入 Jenkins 系统管理 - Global Tool Configuration,配置 SonarQube Scanner

输入安装路径

Jenkins整合SonarQube-LMLPHP

四、项目配置

java

使用构建后步骤进行代码分析需要使用 Maven 对代码进行编译,所以需要有 Maven 的配置文件,例如 pom.xml。

为新建的 Jenkins 项目配置构建后操作步骤,在构建后步骤配置窗口中需要填入 Maven 的构建配置 xml 文件

Jenkins整合SonarQube-LMLPHP

配置构建后操作步骤

sonar.projectKey=$JOB_NAME
sonar.projectName=$JOB_NAME
sonar.language=java
sonar.login=admin
sonar.password=admin
sonar.java.binaries=$WORKSPACE/smr-platform-service/smr-biz/target/classes

Jenkins整合SonarQube-LMLPHP

注意:sonar.java.binaries 表示java的源码路径

参数解释:

Task to run 输入框中输入 scan,即分析代码;

Path to project properties:可选择的输入框,可以指定一个 sonar-project.properties 文件,如果不指定则使用项目默认的 properties 文件;

Analysis properties:输入一些配置参数传递给 SonarQube,这里的参数优先级高于 sonar-project.properties 文件里面的参数,所以可以在这里来配置所有的参数以替代 sonar-project.properties 文件

注:SonarQube Scanner配置可以直接在项目根目录中创建一个文件sonar-project.properties,然后使用Path to project properties中指定属性文件,或者直接在Analysis Properties中配置

Additional arguments:可以输入一些附加的参数,示例中的-X指进入 SonarQube Scanner 的 Debug 模式,输出更多的日志信息

查看分析结果

Jenkins整合SonarQube-LMLPHP

登录到SonarQube,查看结果

Jenkins整合SonarQube-LMLPHP

python

sonar.projectKey=$JOB_NAME
sonar.projectName=$JOB_NAME
sonar.language=python
sonar.login=admin
sonar.password=admin

Jenkins整合SonarQube-LMLPHP

vue

#projectKey项目的唯一标识,不能重复
sonar.projectKey=$JOB_NAME
sonar.projectName=$JOB_NAME
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-
sonar.modules=javascript-module
sonar.login=admin
sonar.password=admin # JavaScript module
javascript-module.sonar.projectName=JavaScript Module
javascript-module.sonar.language=js
javascript-module.sonar.sources=.
javascript-module.sonar.projectBaseDir=src

Jenkins整合SonarQube-LMLPHP

本文参考链接:

https://www.ibm.com/developerworks/cn/devops/1612_qusm_jenkins/index.html

https://www.jianshu.com/p/19af03f48c9a

https://blog.csdn.net/weixin_33895516/article/details/87947976

05-17 15:39