Bootstrap

分享一下使用高版本(3.10.x)sonar-maven-plugin 进行构建时需要注意的两个问题

SonarScanner用来执行源代码分析。这个独立的程序在CI/CD主机上运行,并将分析结果发送到SonarQube服务器,由其计算分析结果,计算质量门并生成报告。我们可以通过命令行和maven构建两种方式来执行SonarScanner的源码分析。关于SonarScanner更多的内容可以参考文章:

一文带您了解SonarScanner的原理和使用方法(包括maven构建和命令行执行)_sonar-scanner-CSDN博客

本人最近在maven项目中使用高版本的sonar-maven-plugin 进行构建时遇到了两个问题,在这里跟大家分享一下!

问题一:本地jdk与 sonar-maven-plugin 需要的jdk不一致

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.10.0.2594:sonar (default-cli) on project PerformaceDemo: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.10.0.2594:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.10.0.2594:sonar: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

如果我们使用最新版本的sonar-maven-plugin3.10.x那么就要确保你本地的jdk最低版本是jdk17

问题二:maven构建时JAVA_HOME变量一定指定的是JDK目录而不能是JRE

因为本人PC没有使用jdk17,所以想投机取巧,JAVA_HOME直接指定了sonarqube-10.7.0.96327\jres目录下的jre

导致错误如下:

 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project PerformaceDemo: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

所以要想使用高版本的sonar-maven-plugin,乖乖的下载jdk17!

maven pom.xml配置SonarScanner

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.sonarsource.scanner.maven</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <version>yourPluginVersion</version>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

maven构建命令

基础命令

mvn clean verify sonar:sonar

配置sonarqube相关信息

mvn clean verify sonar:sonar

-Dsonar.projectKey=KevinDemo1

-Dsonar.host.url=http://localhost:9000

-Dsonar.token=sqp_173f67919bbf5cbbaa6f728e0f02c2c750752a4a

参数解释

sonar.projectKey   sonar中项目的key

sonar.host.url        sonarqube 服务器地址

sonar.token           项目令牌

我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;