特征
建议使用此分析器启动Java Maven项目的分析。
兼容性
Maven版本 | 2.X | 3.X |
---|---|---|
兼容性 |
从maven-sonar-plugin 3.4.0.905开始,不再支持SonarQube <5.6。
如果使用5.6之前的SonarQube实例,则应该使用maven-sonar-plugin 3.3.0.603。
从maven-sonar-plugin 3.1开始,不再支持Maven <3.0。
如果在3.0之前使用Maven,你应该使用maven-sonar-plugin 3.0.2。
先决条件
初始设置
全局设置
编辑位于$ MAVEN_HOME / conf或〜/ .m2中的 settings.xml文件,以设置插件前缀和可选的SonarQube服务器URL。
例:
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
分析一个Maven项目
分析Maven项目包括运行Maven目标:sonar:sonar
在pom.xml文件所在的目录中。
mvn clean verify sonar:sonar
# In some situation you may want to run sonar:sonar goal as a dedicated step. Be sure to use install as first step for multi-module projects
mvn clean install
mvn sonar:sonar
# Specify the version of sonar-maven-plugin instead of using the latest. See also 'How to Fix Version of Maven Plugin' below.
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar
要获得覆盖信息,您需要在分析之前生成覆盖率报告。有关更多信息,请参阅 Java项目的单元测试代码覆盖率。
配置SonarQube分析
分析参数列在分析参数页面上。你必须像这样在你的pom.xml的<properties>部分配置它们:
<properties>
<sonar.exclusions> [...] </sonar.exclusions>
</properties>
安全
任何被授予执行分析 权限的用户都 可以运行分析。
如果“ 任何人” 组未获得“ 执行分析” 权限,或者SonarQube实例受到保护(该 sonar.forceAuthentication
属性设置为 true)
,则 必须通过该 属性提供具有“ 执行分析”权限 的用户的分析标记 sonar.login
。 sonar-scanner -Dsonar.login=[my analysis token]
从SonarQube分析中排除模块
你可以:
-
在要排除的模块的pom.xml中定义属性<sonar.skip> true </sonar.skip>
- 使用构建配置文件来排除某些模块(如用于集成测试)
- 使用高级反应堆选项(如“-pl”)。例如mvn sonar:sonar -pl!module2
示例项目
为了帮助您开始,您可以在这里找到一个简单的项目示例:https : //github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven
如何修复Maven插件的版本
建议 锁定Maven插件的版本:
项目使用Maven 3进行分析
<build> <pluginManagement> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.4.0.905</version> </plugin> </plugins> </pluginManagement> </build>
故障排除
如果你得到一个java.lang.OutOfMemoryError,你可以在* nix环境中设置MAVEN_OPTS环境变量:
|
在Windows环境中,避免使用双引号,因为它们会被误解。
|