1.安装配置插件
1.安装插件
# 在jenkins安装scanner插件: SonarQube Scanner for Jenkins
2.配置SonarQube Server
# 安装完成后,在系统管理->系统设置中找到SonarQube Servers模块,填写服务器信息
# SonarQube installations区域:
# Name: sonar-server
# Server URL: http://10.25.98.159:9000(我本地启的sonar,端口为9000,由于部署的项目有的不在本机,所以如果填http://localhost:9000,部署在别的服务器的项目在进行sonar分析时会找不到,所以填写我本机的IP加端口的形式http://10.25.98.159:9000,在能保证部署项目和sonar在一台服务器上时,可填写http://localhost:9000)
# Server authentication token: 添加类型选择Secret text,在Secret中填写sonar的token以便授权访问(登陆sonar,选择头像->MyAccount->Security->Generate Tokens,生成时请务必记住,不会再出现第二次)
3.配置SonarQube Scanner
# 在系统管理->GlobalToolConfiguration中找到SonarQube Scanner模块,选择新增SonarQube Scanner,Name填写sonar-scanner,勾选Install automatically(不勾选会出现SONAR_RUNNER_HOME选项,可配置本地的sonar scanner,但我配置了本地的scanner发现构建分析的时候还是找不到,勾选后在执行构建时会自动安装),版本选择最新(因为我本机运行的sonar是最新的)
2.项目分析
2.1 分析java项目
1.配置项目构建
# 以jenkins篇构建过的java项目order为例
# 执行代码分析,新增一个构建步骤,选择Execute SonarQube Scanner,选择你的JDK版本,若没有,请在全局工具配置中配置好jdk位置,再选择好sonarqube scanner的版本
# 这样操作之后在JDK项就只要选择Inherit from job,然后在Analysis properties处,输入sonar的检查参数即可完成配置,一般来说不使用Analysis properties,而是使用Additional arguments,内容为-Dproject.settings=sonar-project.properties,将该文件放置在项目的根目录下
wget https://evernote-1258366890.cos.ap-guangzhou.myqcloud.com/1910291505.properties
# 注意java项目必须要指定编译文件夹,不然会一直报错,这里我最后加上了一项sonar.java.binaries=target/classes
2.进行构建
# 直接执行构建即可看到分析结果
3.注意
# 由于配置文件已经指定了sonar服务器所需要的信息,包括项目名,项目Key,sonar.login也是sonar服务器预先生成了,所以两者是相通的,不需要提前在sonar服务器上创建项目,而是直接分析后,会自动在sonar服务器上创建项目
2.2 分析php项目
1.配置项目构建
# fork了thinkphp(top-think/framework)为例
# 由于只是测试,所以具体的构建步骤就不配置了,但是这个项目只有两个分支6.0和5.1,master虽然存在,但没代码,所以我们在配置时要指定分支为*/6.0,另外限制项目的运行节点为TestENV,因为上面的java项目也是在这个节点运行了,环境较为完整,避免因为环境问题导致其他问题
# 执行代码分析,新增一个构建步骤,选择Execute SonarQube Scanner,选择你的JDK版本,若没有,请在全局工具配置中配置好jdk位置,再选择好sonarqube scanner的版本
# 这样操作之后在JDK项就只要选择Inherit from job,然后在Analysis properties处,输入sonar的检查参数即可完成配置,一般来说不使用Analysis properties,而是使用Additional arguments,内容为-Dproject.settings=sonar-project.properties,将该文件放置在项目的根目录下(这是个模板文件,根据实际情况进行修改)
wget wget https://evernote-1258366890.cos.ap-guangzhou.myqcloud.com/1910162032.properties
2.进行构建
# 直接执行构建即可看到分析结果
3.注意
# 由于配置文件已经指定了sonar服务器所需要的信息,包括项目名,项目Key,sonar.login也是sonar服务器预先生成了,所以两者是相通的,不需要提前在sonar服务器上创建项目,而是直接分析后,会自动在sonar服务器上创建项目