美文网首页
2019-06-21 Sonar Java静态代码质量检测

2019-06-21 Sonar Java静态代码质量检测

作者: 四火流年 | 来源:发表于2019-06-21 17:51 被阅读0次

Sonarqube 安装说明

  1. 安装 Docker
  2. 下载镜像
docker pull sonarqube:lts
docker pull mysql:5.6.43
  1. 启动mysql,root账号登录

docker run --name mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.43 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  1. 创建数据库
mysql -uroot -proot -h127.0.0.1 -P3308

create database sonar default charset utf8mb4;
  1. 创建 /home/admin/sonarqube目录(这个目录用来映射docker container里的一些数据)
  2. 启动docker容器(要将数据库连接方式修改一下)
docker run --name sonar -p 9001:9000 \
    -v /home/admin/sonarqube/conf:/opt/sonarqube/conf \
    -v /home/admin/sonarqube/data:/opt/sonarqube/data \
    -v /home/admin/sonarqube/logs:/opt/sonarqube/logs \
    -v /home/admin/sonarqube/extensions:/opt/sonarqube/extensions \
    -e sonar.jdbc.username=root \
    -e sonar.jdbc.password=root \
    -e sonar.jdbc.url="jdbc:mysql://172.22.152.150:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false" \
    sonarqube:lts

注意,不要用 127.0.0.1:3308,得是当前机器的IP。

  1. 进入 http://127.0.0.1:9001/
  2. 启动完成。初始密码admin/admin

静态报告推送

配置

配置 Maven 的 settings.xml文件,路径一般在 ~/.m2/settings.xml

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- 配置 Sonar Host地址,默认:http://127.0.0.1:9000 -->
                <sonar.host.url>
                   http://127.0.0.1:9001
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

这里的 sonar.host.url 配置成远端的Sonarqube,然后执行下面的命令,就可以看到代码静态分析结果了,不一定要自己安装Sonarqube。
注意:是 settings.xml,不是 setting.xml。

执行命令

在工程根目录,执行

mvn clean verify sonar:sonar 或 mvn clean install sonar:sonar

SonarQube安装问题和处理

问题1

NoRouteToHostException: No route to host (Host unreachable)导致连不上数据库

解决办法

因为防火墙禁止了,在/etc/sysconfig/iptables添加下面两个规则:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 9001 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3308 -j ACCEPT

然后重启iptables:
systemctl restart iptables

问题2

Error response from daemon: driver failed programming external connectivity on endpoint sonar (f5e2d3db9c89b222d7ae7716ab60a138f321c58cd75b8bd8a83c34a57604c514): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9001 -j DNAT --to-destination 172.18.0.3:9000 ! -i docker0: iptables: No chain/target/match by that name.

解决办法

yum install bridge-utils
ifconfig docker0 down
brctl delbr docker0

然后重启docker:

systemctl restart docker
docker start mysql
docker start sonar

SonarLint 插件

Intellij IDEA 有一个 SonarLint 的插件,可以在写代码的时候提醒我们注意代码质量问题。


image.png

相关文章

  • 2019-06-21 Sonar Java静态代码质量检测

    Sonarqube 安装说明 安装 Docker 下载镜像 启动mysql,root账号登录 docker run...

  • 了解sonarqube

    一、sonar简介 sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript...

  • Sonar平台简单调研

    一、 Sonar简介   Sonar是一个用来管理源码质量的开源平台,可以从多维度进行静态代码检测。利用其可扩...

  • SonarQube的Android环境配置

    Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,github源码。默认支持Java语言的静态代码...

  • 代码检查工具SonarQube Android项目配置记录

      Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,github源码。默认支持Java语言的静态...

  • sonar

    Sonar简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过...

  • 持续集成2-SonarQube

    sonar是一个代码质量管理平台,根据规则对代码进行静态检查,对保证工程的代码质量很有帮助 sonar5.5是最后...

  • SonarQube介绍

    简介 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成...

  • sonar代码扫描实现(基于java-maven)

    Sonar介绍 Sonar是一个用于代码扫描检测的开放平台。可以实现对不同语言(java、python、php、C...

  • 使用docker 搭建 SonarQube 代码质量管理平台

    一、概述 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从多个维度检测代码质量,通过插件形...

网友评论

      本文标题:2019-06-21 Sonar Java静态代码质量检测

      本文链接:https://www.haomeiwen.com/subject/azsuqctx.html