具体的流程如下:
安装SonarQube Scanner插件
添加SonarQube凭证
Jenkins进行SonarQube配置
Manage Jenkins->Configure System->SonarQube servers
Manage Jenkins->Global Tool Configuration
SonaQube 关闭审查结果上传到SCM功能
在项目添加SonaQube代码审查(非流水线项目)
添加构建步骤:
正常的项目,没有问题
错误的代码
package com.topcheer; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * */ public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //模拟代码错误 int i = 100/0; //模拟冗余代码 int a = 100; a = 200; resp.getWriter().write("hello Servlet!"); } }
在项目添加SonaQube代码审查(流水线项目)
1)项目根目录下,创建sonar-project.properties文件
# must be unique in a given SonarQube instance sonar.projectKey=web_demo_pipeline # this is the name and version displayed in the SonarQube UI. Was mandatory sonar.projectName=web_demo_pipeline sonar.projectVersion=1.0 # Path is relative to the sonar-project.properties file. Replace "" by "/" on # This property is optional if sonar.modules is set. sonar.sources=. sonar.exclusions=**/test/**,**/target/** sonar.java.source=1.8 sonar.java.target=1.8 # Encoding of the source code. Default is default system encoding sonar.sourceEncoding=UTF-8
结果: