zoukankan      html  css  js  c++  java
  • sonarqube+Scanner代码质量管理工具

    本文相关描述基于sonarqube 6.2版本。

    下载地址:

    sonarqube下载网址:https://www.sonarqube.org/downloads/

    Scanner下载网址(用于扫描项目代码质量问题): https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

    SonarLint下载网址(用于在开发工具里集成sonar代码扫描):http://www.sonarlint.org/

    解压地址(即安装):

    我本机安装sonarqube地址为:C:/sonar/sonarqube-6.2

    sonar插件

    sonar插件的jar目录为: C:/sonar/sonarqube-6.2/lib/bundled-plugins,插件jar下载地址举例:

    sonar支持指定开发语言代码扫描插件: https://docs.sonarqube.org/display/PLUG/Plugin+Library

    sonar支持java的插件:https://docs.sonarqube.org/display/PLUG/SonarJava

    sonar支持git的插件: https://docs.sonarqube.org/display/PLUG/Git+Plugin

    sonar支持gitHub的插件: https://docs.sonarqube.org/display/PLUG/GitHub+Plugin

    启动sonarqube

    1) 创建本地新数据库命名为sonar,本机使用的是MySQL5.7

    2) 启动之前修改配置文件C:\sonar\sonarqube-6.2\conf\sonar.properties,主要修改sonar数据库连接配置

    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=123456

    3) 本机是win10系统64位机器,所以启动目录为:C:\sonar\sonarqube-6.2\bin\windows-x86-64\StartSonar.bat

    4) 启动成功后,黑色cmd小窗口不关闭。

    5) 在浏览器地址栏输入http://localhost:9000/about,正常出现sonar的html页面即为成功。

    6) 同时查看mysql数据库sonar,发现已经自动创建出了44张表。

    扫描项目代码质量——第一种:基本的命令行方式

    1) Scanner本机解压地址为:C:\sonar\sonar-scanner-2.8\

    2) 修改配置文件:C:\sonar\sonar-scanner-2.8\conf\sonar-scanner.properties,修改项为:

    sonar.host.url=http://localhost:9000

    3) 添加环境变量path: C:\sonar\sonar-scanner-2.8\bin,测试是否设置成功,新打开一个cmd窗口,输入命令sonar-scanner -h,如果出现-开头的列表提示有哪些命令可用则表示成功。

    4) 在被扫描的项目根目录下新建配置文件:sonar-project.properties,内容如下:

    sonar.projectKey=admin:MyProject
    sonar.projectName=MyProject
    sonar.projectVersion=1.0
    sonar.sources=src/main/java
    sonar.tests=src/test/java
    sonar.java.binaries=classes

    sonar.language=java

    #Tells SonarQube where the unit tests execution reports are
    sonar.junit.reportsPath=reports/junit

    #Tells SonarQube where the unit tests code coverage report is
    sonar.jacoco.reportPath=reports/jacoco/jacoco-ut.exec

    #Tells SonarQube where the integration tests code coverage report is
    sonar.jacoco.itReportPath=reports/jacoco/jacoco-it.exec

    # Encoding of the source files
    sonar.sourceEncoding=UTF-8

    5) 新打开cmd命令行窗口,至被扫描代码项目根目录下,运行命令sonar-scanner,运行成功提示:

    INFO: ------------------------------------------------------------------------
    INFO: EXECUTION SUCCESS
    INFO: ------------------------------------------------------------------------

    6) 在浏览器窗口里输入http://localhost:9000,发现被扫描项目数(Projects Analyzed)为1,代表质量扫描成功。

    PS: 但是我发现Coverage(代码覆盖率)这一项值是空的!我估计sonar-scanner命令并不包括代码覆盖率的扫描。

    扫描项目代码质量——第二种:实现在eclipse里面扫描代码

    1) 集成SonarLint到eclipse里面。这里只记录site方式集成,下载plugins和features从网址:http://downloads.sonarsource.com/eclipse/eclipse/,然后将对应的jar包放入eclipse安装目录下的对应文件夹里plugins和features。重启eclipse,Window -> Preferences -> SonarQube表示集成成功。在console视图里,即可看到SonarQube Console下拉选项。

    2) 修改maven的settings.xml如示例:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

    3) 修改项目中的pom.xml文件,增加

    <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <sonar.language>java</sonar.language>
    </properties>

    PS: 最后我也没搞出来,估计eclipse插件目前并不成熟,因为官网的示例和我真实下载安装的视图和操作都不一样!

    扫描项目代码质量——第三种:扫描maven项目

    1) 对于maven项目扫描,扫描方式为:打开cmd窗口,到项目存放的pom.xml的目录下(一般也就是项目根目录下),执行命令mvn sonar:sonar。

    如果执行不成功,可尝试下面的描述。

    Prepare jacoco agent to allow coverage report generation, build the project, and execute the unit tests:
    mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install

    To get coverage per tests information, you will need to activate the profile when running the instrumented tests:
    mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Pcoverage-per-test

    Analyze the project with SonarQube using Maven:
    mvn sonar:sonar

    2) 在命令行窗口打印出BUILD SUCCESS之后,代表扫描成功。

    3) 查看localhost:9000,发现成功生成项目记录,并且Coverage(代码覆盖率)这一项有值。成功!!!

     

    用户管理

    1) 必须以管理员用户登录,才可以看见导航栏的Administration。此处可以使用默认管理员admin账户登录(默认密码也是admin)。

    2) Administration -> Security -> Users -> Create User

    配置项目相关用户权限

    配置指定用户可以拥有某个项目的指定权限。

    1) Administration -> Projects -> Management

    2) 选中某个已存在的项目Actions -> Edit Permissions -> Users -> Search输入框输入用户名三位数以上,在出现的用户上勾选用户相应的项目权限 或者 直接点击Apply Template按钮应用某个已存在的用户权限模版。

  • 相关阅读:
    JavaScript instanceof vs typeof
    2016让我受益最大的那些书--别找了,都在这里
    我为什么要自己编译openjdk8以及那些坑
    支撑Java NIO 与 NodeJS的底层技术
    Java I/O and NIO [reproduced]
    How do servlets work-Instantiation, sessions, shared variables and multithreading[reproduced]
    怎样当一个企业舍不得的人
    【Android】Android apk默认安装位置设置
    【Android】Android 代码判断是否获取ROOT权限(一)
    【Android】Android 广播大全
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/6378147.html
Copyright © 2011-2022 走看看