docker安装sonarqube及实际应用

因为平台的多样化,在不一样环境的安装方式可能也不同,为了不环境不一致带来的差别,特记一笔容器安装:java

1、Sonar能够从如下七个维度检测代码质量,而做为开发人员至少须要处理前5种代码质量问题。sql

1. 不遵循代码标准(Coding Standards Breach)docker

        sonar能够经过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。数据库

2. 潜在的缺陷(Bugs and Potential Bugs)编程

        sonar能够经过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。架构

3. 糟糕的复杂度分布(Bad Distribution of Complexity)maven

        文件、类、方法等,若是复杂度太高将难以改变,这会使得开发人员 难以理解它们, 且若是没有自动化的单元测试,对于程序中的任何组件的改变都将可能致使须要全面的回归测试。编程语言

4. 重复(Duplications)工具

        显然程序中包含大量复制粘贴的代码是质量低下的,sonar能够展现 源码中重复严重的地方。post

5. 注释不足或者过多(Not Enough or Too Many Comments)

        没有注释将使代码可读性变差,特别是当不可避免地出现人员变更 时,程序的可读性将大幅降低 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

6. 缺少单元测试(Lack of Unit Tests)

        sonar能够很方便地统计并展现单元测试覆盖率。

7. 糟糕的设计

        经过sonar能够找出循环,展现包与包、类与类之间的相互依赖关系,能够检测自定义的架构规则 经过sonar能够管理第三方的jar包,能够利用LCOM4检测单个任务规则的应用状况, 检测藕合。

下面经过如下介绍SonarQube的安装、使用说明。

2、为何要选择sonarQube?

我的使用以后认为 : sonarQube的优点以下(相比于阿里编码规约这种市面上常见的相似软件):

1. 更加优秀的图形化界面

基本上经过界面就能够对本身项目的代码情况一目了然

2. 能够查询出其它软件难以定位到的问题

好比 : 可能致使空指针异常的问题 (对象在进行使用前没有加空的判断)

       可能致使内存泄漏的问题, 在try catch 块里面,直接使用e.printStackTrace()将堆栈信息打印到内存的

       可能致使的漏洞 : 成员变量使用public定义的

       还有诸如 : 流等未关闭或者是非正常关闭都可以检测出来!

       功能很是强大!!

3、如何使用?

SonarQube是一款开源的代码质量管理平台,已支持20+ 种编程语言。

拉取镜像,默认都是从 DockerHub 拉取

1 docker pull postgres 拉取数据库

2 docker pull sonarqube 拉取sonarqube

 

4、安装完毕后,启动运行

1 启动postgresql

$ docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres
2 启动 sonarqube

$ docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9000:9000 -d sonarqube
3 打开 http://localhost:9000/ , 点击 "Log in"

登陆帐号:admin 密码:admin

 

5、使用

接下来有两种处理方案

方案一: 根据页面提示,会让你建立用户名密码.而后选择编程语言,版本控制工具,生成一个maven命令

mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.username=admin -Dsonar.username=admin -Dsonar.java.binaries=./
or
mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.java.binaries=./
mvn sonar:sonar -Dsonar.host.url=https://localhost:9000 -Dsonar.login=b291bdf9ef56800ccdb826fe75fbde66165819a3

获取 -Dsonar.login的值

方案二: 修改maven的setting文件

# pom文件添加以下内容(注意,jdk版本必须是jdk1.8)

# <profiles>标签下添加以下内容
<profile>
    <id>sonar</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
        <!-- 配置 Sonar Host地址,默认:http://localhost:9000 -->
        <sonar.host.url>
          http://10.100.28.186:9000
        </sonar.host.url>
    </properties>
</profile>
# pom文件添加以下内容(注意,jdk版本必须是jdk1.8)
<build>
   <plugins>
       <plugin>
           <groupId>org.sonarsource.scanner.maven</groupId>
           <artifactId>sonar-maven-plugin</artifactId>
           <version>3.1.1</version>
       </plugin>
   </plugins>
</build>

执行以下命令测试

mvn clean install sonar:sonar
相关文章
相关标签/搜索