Jenkins整合SonaQube

具体的流程如下:

Jenkins整合SonaQube

 

 安装SonarQube Scanner插件

Jenkins整合SonaQube

 

 添加SonarQube凭证

Jenkins整合SonaQube

 

 Jenkins整合SonaQube

Jenkins进行SonarQube配置
Manage Jenkins->Configure System->SonarQube servers

Jenkins整合SonaQube

 

Manage Jenkins->Global Tool Configuration 

Jenkins整合SonaQube

 

 SonaQube 关闭审查结果上传到SCM功能

Jenkins整合SonaQube

在项目添加SonaQube代码审查(非流水线项目)
添加构建步骤:

Jenkins整合SonaQube

 

 正常的项目,没有问题

Jenkins整合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!");
    }
}

Jenkins整合SonaQube

 

 Jenkins整合SonaQube

 

在项目添加SonaQube代码审查(流水线项目)
1)项目根目录下,创建sonar-project.properties文件

Jenkins整合SonaQube

 

 

# 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

Jenkins整合SonaQube

 

 结果:

Jenkins整合SonaQube