最近在学习使用sonar扫描代码 已经成功扫描python项目 而扫描java代码不成功。
在网上找到的扫描java项目文章 经过尝试之后也没有成功。
本人自己研究了sonar官方的使用说明文章 将其翻译成中文。
前言建议将用于Maven的SonarScanner作为Maven项目的默认扫描程序。
通过常规Maven目标执行SonarQube分析的能力使得它可以在任何Maven可用的地方使用 开发人员构建、CI服务器等 不需要手动下载、安装和维护SonarQube Runner安装。Maven构建已经拥有SonarQube成功分析项目所需的许多信息。通过基于这些信息预先配置分析 手动配置的需求大大减少。
前提条件 使用Maven 3.0及以上版本至少使用了您的SonarQube服务器支持的最小版本的Java 其实就是要注意jdk的版本 这里可能要注意一下 现在sonarqube最低要求的jdk版本是11 而SonarScanner最低要求的版本是8 最好就使用11版本吧 全局设置编辑setting.xml文件 位置在$MAVEN_HOME/conf或者~/.m2 来设置插件前缀和可选的SonarQube服务器URL。按我的理解 需要把“http://myserver:9000”改成是自己所搭建的sonarqube服务器地址 其他地方应该不需要改动。
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目标路径 这是从保存主项目pom.xml的目录中获取。 你需要在扫描命令中加入认证token 如下
mvn clean verify sonar:sonar -Dsonar.login myAuthenticationToken
在某些情况下 您可能想运行sonar:sonar作为专用步骤。对于多模块项目 第一步是安装。如下
mvn clean install mvn sonar:sonar -Dsonar.login myAuthenticationToken
要指定snoar-maven插件的版本而不是使用最新版本 如下
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar
要获得扫描覆盖率信息 您需要在分析之前生成覆盖率报告。
配置分析大多数分析属性将从项目中读取。如果您想覆盖指定附加参数的默认值 请配置pom.xml文件的 部分 如下
properties sonar.buildString [...] /sonar.buildString /properties示例项目
为了帮助你开始 可以使用这个简单的示例项目 https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven
可在下面地址直接下载压缩包 https://github.com/SonarSource/sonar-scanning-examples
建议锁定Maven插件的版本
build pluginManagement plugins plugin groupId org.sonarsource.scanner.maven /groupId artifactId sonar-maven-plugin /artifactId version 3.7.0.1746 /version /plugin /plugins /pluginManagement /build故障排除
如果你遇到java.lang.OutOfMemoryError 设置MAVEN_OPTS环境变量 就像在*nix环境中这样
export MAVEN_OPTS -Xmx512m
在Windows环境中 避免使用双引号 因为它们会被误解。
set MAVEN_OPTS -Xmx512m
本篇文章基于20210926的官网文章 翻译之中可能有不够恰当的地方 推荐直接阅读官方文档。
原文链接如下
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/



