zoukankan      html  css  js  c++  java
  • 代码质量检测SonarQube

    代码质量检测SonarQube

    1. SonarQube基础java开发,需安装open JDK8版本
    2. SonarQube需要依赖MySQL数据库,至少5.6版本以上
    3. SonarQube的小型实例至少4G内存,如果大型实例需要16G内存
    

    SonarQube安装部署

    #安装软件
    [root@sonar ~]# yum ‐y install git java unzip wget
    
    #安装数据库
    [root@sonar ~]# mkdir /server/tools -p
    [root@sonar ~]# cd /server/tools/
    [root@sonar ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
    
    #解压文件
    [root@sonar tools]# tar xf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz 
    [root@sonar tools]# mv mysql-5.6.44-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.44
    [root@sonar tools]# cd /usr/local/
    
    #创建软连接
    [root@sonar local]# ln -s mysql-5.6.44 mysql
    
    #添加用户和用户组
    [root@sonar local]# useradd -u 618 -G mysql -s /sbin/nologin -M mysql
    [root@sonar local]# useradd -u 618 -g mysql -s /sbin/nologin -M mysql
    
    #创建数据目录
    [root@sonar local]# mkdir -p /data/mysql/data
    
    #授权用户
    [root@sonar local]# chown -R mysql:mysql /data/mysql/data
    [root@sonar local]# chown -R mysql:mysql /usr/local/mysql*
    
    #添加环境变量
    [root@sonar local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
    [root@sonar local]# source /etc/profile
    
    #初始化数据库
    [root@sonar local]# yum -y install libaio-devel
    [root@sonar local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
    
    #启动数据库
    [root@sonar local]# cat /etc/my.cnf
    [mysqld]
    user=mysql
    basedir=/usr/local/mysql
    datadir=/data/mysql/data
    server_id=6
    socket=/tmp/mysql.sock
    [mysql]
    socket=/tmp/mysql.sock
    [root@sonar local]# mv mysql/support-files/mysql.server /etc/init.d/mysqld
    [root@sonar local]# /etc/init.d/mysqld start
    
    #设置数据库密码
    [root@sonar ~]# mysqladmin -uroot password '123'
    
    #创建数据库
    [root@sonar ~]# mysql -uroot -p123 -e "create database sonar charset utf8mb4;"
    
    #SonarQube服务安装
    下载sonar 
    https://www.sonarqube.org/downloads/
    [root@sonar tools]# unzip sonarqube-7.0.zip 
    [root@sonar tools]# mv sonarqube-7.0 /usr/local/sonarqube
    
    #创建sonar用户
    [root@sonar tools]# useradd sonar
    [root@sonar tools]# chown -R sonar:sonar /usr/local/sonarqube
    
    #配置sonar连接本地数据库
    [root@sonar ~]# grep '^[a-Z]' /usr/local/sonarqube/conf/sonar.properties
    sonar.jdbc.username=root
    sonar.jdbc.password=123
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
    [root@sonar ~]# 
    
    #使用普通用户启动sonarqube(必须以普通用户启动,否则会启动失败)
    [root@sonar ~]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"
    

    浏览器访问:http://10.0.1.203:9000

    用户名admin 密码admin

    生成一个tokin,只显示一次记录好

    配置管理sonar 安装插件

    1.安装中文汉化插件
    在页面上找到administrator > Marketplace > 搜索框 chinese,出现一个 chinese pack 然后点击install,安装完点击restart 重启生效

    2.默认已安装C JAVA Python PHP JS 等代码质量分析工具,如果一个项目使用了JAVA CSS JS HTML,默认情况下sonar
    只会检测JAVA,JS等代码的漏洞和bug,如果安装了HTML、CSS等插件,则会检测该项目代码中JAVA JS HTML CSS代码
    的漏洞和bug

    手动安装插件

    [root@sonar tools]# tar xf sonar_plugins.tar.gz
    [root@sonar tools]# mv /usr/local/sonarqube/extensions/plugins /usr/local/sonarqube/extensions/plugins_bak
    [root@sonar tools]# mv plugins /usr/local/sonarqube/extensions/plugins
    [root@sonar tools]# tar xf sonar_plugins.tar.gz -C /usr/local/sonarqube/extensions/
    [root@sonar tools]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart"
    

    jenkins安装SonarQube检测

    [root@jenkins ~]# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
    [root@jenkins ~]# unzip sonar-scanner-cli-4.2.0.1873-linux.zip
    [root@jenkins ~]# mv sonar-scanner-4.2.0.1873-linux /usr/local/sonar-scanner
    
    #修改文件配置
    [root@jenkins ~]# grep -Ev '#|^$' /usr/local/sonar-scanner/conf/sonar-scanner.properties 
    sonar.host.url=http://10.0.1.203:9000
    sonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba   #这里填写sonar服务器生成的令牌
    sonar.sourceEncoding=UTF-8
    [root@jenkins ~]# 
    
    #推送html代码并分析
    [root@jenkins ~]# cd /var/lib/jenkins/workspace/test-job
    /usr/local/sonar-scanner/bin/sonar-scanner 
      -Dsonar.projectKey=html 
      -Dsonar.sources=. 
      -Dsonar.host.url=http://10.0.1.203:9000 
      -Dsonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba
    

    手动推送JAVA项目

    #方法一:
    [root@jenkins tools]# cd /var/lib/jenkins/workspace/maven-job
    [root@jenkins maven-job]# /usr/local/sonar-scanner/bin/sonar-scanner 
    -Dsonar.projectKey=java 
    -Dsonar.sources=.
    
    #方法二
    [root@jenkins tools]# cd /var/lib/jenkins/workspace/maven-job
    [root@jenkins maven-job]# mvn sonar:sonar 
    -Dsonar.host.url=http://10.0.1.203:9000 
    -Dsonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba
    

    sonar集成到jenkins中

    jenkins配置SonarQube服务端

    系统管理->系统设置->sonarQube 告诉jenkins SonarQubeServer服务端地址
    1.Name随意填写
    2.URL添加SonarQube的地址
    3token添加一个secret text 填写之前安装SonarQube的Token
    

    jenkins配置执行sonar-scanner命令的家目录,让jenkins能找到该命令 系统管理->全局工具配置

    java项目增加构建项sonar

    方法一:

    sonar.projectName=${JOB_NAME}
    sonar.projectKey=java
    sonar.sources=.
    sonar.java.binaries=target/sonar
    

    方法二:

    clean
    verify
    sonar:sonar
    -Dsonar.host.url=http://10.0.1.203:9000
    -Dsonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba
    

    html项目构增加建项sonar

    sonar.projectName=${JOB_NAME}
    sonar.projectKey=html
    sonar.sources=.
    

  • 相关阅读:
    getopt for windows
    开源代码学习之Tinyhttpd
    GCC 中的编译器堆栈保护技术
    读《程序员的思维修炼》有感
    main之前初始化流程
    平均速度
    显示图案
    圆的面积和周长
    C#(Winform) Http 发送数据
    Android BaseAdapter的使用
  • 原文地址:https://www.cnblogs.com/opesn/p/12993945.html
Copyright © 2011-2022 走看看