SonarQube — 使用 SonarQube 扫描分析 Maven 译

目录

特征

建议这个分析器在Java的Maven项目中启动分析器

兼容性

 

Maven Version

2.x

3.x

兼容性

 

从maven-sonar-plugin 3.4.0.905开始, 不支持小于5.6的SonarQube

如果你使用5.6之前的SonarQube实例,你应该使用maven-sonar-plugin 3.3.0.603

从maven-sonar-plugin 3.1开始, 不支持小于小于3.0的SonarQube

如果你使用3.0之前的SonarQube实例,你应该使用maven-sonar-plugin 3.0.2

 

前提条件

  • Maven 3.x

  • 已安装SonarQube

  • 您的SonarQube服务器支持的最小Java版本正在使用中(java8用于最新的LTS)

  • 您要分析的每一种语言的插件已经安装

  • 您已经阅读分析代码源Analyzing Code Source

 

初始配置

全局配置

编辑位于$MAVEN_HOME/conf or ~/.m2下的settings.xml file文件,设置插件前缀和SonarQube服务器URL

Example:

 

<settings>

    <pluginGroups>

        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

    </pluginGroups>

    <profiles>

        <profile>

            <id>sonar</id>

            <activation>

                <activeByDefault>true</activeByDefault>

            </activation>

            <properties>

                <!-- 选择URL连接服务器. 默认值是:http://localhost:9000 -->

                <sonar.host.url>

                  http://myserver:9000

                </sonar.host.url>

            </properties>

        </profile>

     </profiles>

</settings>

 

分析Maven项目

分析Maven项目包括云心一个Maven目标:sonar:sonar 在pom文件所在的目录

 

mvn clean verify sonar:sonar

  

# 一些情况,你也许想要运行sonar:sonar goal 作为专门的步骤,确定使用install作为多模块项目安装的第一步

mvn clean install

mvn sonar:sonar

 

# 指定sonar-maven-plugin的版本而不是最新的,另请参阅下面的“如何修复Maven插件”

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar

如果获取测试覆盖率信息,你需要在分析之前自动生成覆盖率报告,有关更多的信息,请参阅Code Coverage by Unit Tests for Java Project 。

 

配置SonarQube分析

分析“分析参数页Analysis Parameters page”列表中的参数,你必须在你的pom文件中配置它们

<properties>

  <sonar.exclusions> [...] </sonar.exclusions>

</properties>

安全

任何被授予执行分析权限的用户可以运行分析操作 Execute Analysis

如果任何组没有被授予执行分析权限或者如果EonarQube是安全的( sonar.forceAuthentication属性设置为true),用户执行分析权限的token必须被sonar.login属性提供,例如:sonar-scanner -Dsonar.login=[my analysis token]

 

从SonarQube分析中排除模块

你可以:

  • 在想排除模块的pom中定义属性<sonar.skip>true</sonar.skip> 

  • 使用构建文件执行排除的一些模块(例如继承测试)

  • 使用 Advanced Reactor Options (例如 "-pl"). 例如mvn sonar:sonar -pl !module2

 

示例项目

为了帮助你开始,一个简单的示例项目在这里可以获取:

https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven

 

 

如何修复Maven插件版本

建议锁定Maven插件的版本:lock down versions of Maven plugins:

使用Maven3分析版本

<build>

  <pluginManagement>

    <plugins>

      <plugin>

        <groupId>org.sonarsource.scanner.maven</groupId>

        <artifactId>sonar-maven-plugin</artifactId>

        <version>3.5.0.1254</version>

      </plugin>

    </plugins>

  </pluginManagement>

</build>

 

故障排除

如果你遇到java.lang.OutOfMemoryError, 你可以设置MAVEN_OPTS环境变量,像这样:

export MAVEN_OPTS="-Xmx512m"

在Windows中,请不要使用双引号,因为他们会被误解

set MAVEN_OPTS=-Xmx512m

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值