Sonarqube&SonarLint&Jenkins集成指引

1.简介.
       官方文档:https://docs.sonarqube.org/latest/
        Sonarqube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。有益于培养逻辑清晰,可读性强,健壮的代码。
        包括一个C/S架构的服务端,主要功能:代码检测规则管理,代码检测报告管理,访问权限管理。
        包括为其他软件集成的插件工具:SonarLint与Idea配合提供实时代码检测功能。Jenkins插件提供CI与代码检测功能流程化。PDF插件提供检测报告的输出存档。
2.系统架构.
      
        一个典型的开发过程中:
        1. 开发人员在 IDE 中开发和合并代码,使用SonarLint在编辑器中接收即时反馈,并将他们的代码签入他们的 DevOps 平台。
        2. 组织的持续集成 (CI) 工具检查、构建和运行单元测试,集成的 SonarQube 扫描仪分析结果。
        3. 扫描器将结果发布到 SonarQube 服务器,该服务器通过 SonarQube 界面、电子邮件、IDE 内通知(通过 SonarLint)以及对拉取或合并请求的修饰(使用Developer Edition及更高版本时)向开发人员提供反馈。
3.SonarQube安装指引.
    准备工作:
    SonarQube 7.5 —> 下载链接: https://pan.baidu.com/s/1N5PmODifYwk97DEB5sm2ag?pwd=jhtd 提取码: jhtd
    中文插件sonar-l10n-zh-plugin-1.25.jar(可选) —> 下载链接: https://pan.baidu.com/s/1N5PmODifYwk97DEB5sm2ag?pwd=jhtd 提取码: jhtd
    PDF输出报告插件sonar-pdfreport-plugin-3.0.3.jar(可选,需要导出PDF结果报告则添加) —> 下载链接: https://pan.baidu.com/s/1N5PmODifYwk97DEB5sm2ag?pwd=jhtd 提取码: jhtd
    mysql 5.6~8.0
    jdk8
    注意:为什么要选择如上版本搭配?
        ①SonarQube高版本不支持mysql数据库,而我们公司基本不使用其他数据库。所以选择低于或等于7.7版本。
        ②PDF插件支持到7.5版本,暂时没找到最新版本。所以选择7.5版本。
        ③需要注意JDK版本,SonarQube对jdk版本有要求,可看官方文档。
    1. 下载SonarQube:
    wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.5.zip
    2. 解压zip包至当前目录:
    unzip sonarqube-7.5.zip
    3. 下载中文插件sonar-l10n-zh-plugin-1.25.jar(可选,需要中文界面则添加)
        将插件移动至目录./sonarqube-7.5/extensions/plugins下 
    4.下载PDF输出报告插件sonar-pdfreport-plugin-3.0.3.jar(可选,需要导出PDF结果报告则添加)
        将插件移动至目录./sonarqube-7.5/extensions/plugins下 
    5.修改配置文件 ./sonarqube-7.5/conf/sonar.properties,如下:主要修改数据库配置:
        注意:要提前在数据库实例上建库[sonar]
             
    sonar.jdbc.username=用户名
    sonar.jdbc.password=密码
    sonar.jdbc.url=jdbc:mysql://主机ip地址:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
    6.修改配置文件./sonarqube-7.5/conf/wrapper.conf,如下:主要修改jdk配置
        通过如下命令查询jdk安装路径:
    whereis java
    ls -lrt /usr/bin/java
    ls -lrt /etc/alternatives/java
         
        将获取到的jdk安装路径配置至wrapper.conf
         
    7.启动sonarqube服务:
         注意:不能使用root用户启动,需要自建用户启动,因为启动时会启动es组件,而es组件要求不能以root用户身份启动。(示例使用jumpuser启动,需要将sonarqube的所有文件的所属都改为jumpuser,使用命令: chown -R jumpuser:jumpuser sonarqube-7.7
        启动:
    ./bin/linux-x86-64/sonar.sh start
         
        查看日志:
    tail -300f ./logs/sonar.log
         
        发现SonarQube is up 表示启动成功了!!!
    8.通过浏览器访问SonarQube服务:
        注意:访问失败请排查进程和端口9000是否正常监听,之后排查防火墙和安全组策略,日志正常却访问不了应该是防火墙或安全组问题。
        地址:http://host:9000/
        默认账号:admin
        默认密码:admin
         
    9.SonarQube服务的PDF报告输出插件的相关配置:
     
    如下配置:
     
    SonarQube服务的配置就此结束了,至于规则相关的管理不在该文档范围!
4.SonarQube集成Jenkins.
    准备工作:
    Jenkins 2.327
    SonarQube Scanner for JenkinsVersion 2.14 插件安装
    CodeSonar PluginVersion 2.1.0 插件安装
    1.Jenkins上配置SonarQube Server信息:
     
    配置如下:
     
    2.Jenkins上配置SonarQube Scanner工具信息:
     
    配置如下:
     
    3.Jenkins中job构建步骤中配置SonarQube Scanner扫描:
    点击配置按钮
     
    配置如下:
     
    sonar.host.url=http://host:9000 --> sonarQube服务地址端口
    sonar.login=admin    --> sonarQube登录账号
    sonar.password=admin    --> sonarQube登录密码
    sonar.projectKey=构建的项目    -->构建的项目ID
    sonar.projectName=构建的项目名    -->构建的项目名
    sonar.projectVersion=1.0.0    -->构建的项目版本
    sonar.language=java    -->语言
    sonar.java.binaries=$WORKSPACE/构建的项目/build/libs/ -->构建的jar包地址
    sonar.sources=$WORKSPACE/构建的项目    -->构建的源代码地址
    sonar.pdf.password=admin    -->SonarQube的PDF插件设置的账号
    sonar.pdf.username=admin    -->SonarQube的PDF插件设置的密码
    4.Jenkins中job进行构建,如下为控制台打印日志:
 
    5.SonarQube中查看检测报告:
     
    6.SonarQube中下载PDF报告:
     
    如下下载:
     
    注意:由于在第3步中配置的 sonar.host.url=http://host:9000该配置,导致下载地址有问题,需要手动修改下载地址才能下载PDF文件(暂未找到解决方法),解决方式如下图:
    最终的访问地址为(端口号之后补上/):
    http://host:9000api/pdfreport/get?componentKey=项目ID -> http://host:9000/api/pdfreport/get?componentKey=项目ID
     
5.SonarQube集成SonarLint.
    准备工作:
    IntelliJ IDEA 2019.2 x64
    SonarLint 4.14.2.283 插件
    1.安装SonarLint插件:
      
    如下:
      
    2.去Sonarqube上生成认证Token:
     
    3.配置SonarLint:
     
    4. 填写认证Token
     
    点击OK完成设置
    5.查看SonarLint自动检测效果:
     
    6.使用SonarLint手动检测代码:
     
    查看报告:
     
    7.手动同步SonarQube的检测规则:
     
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值