You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sonar-maven-plugin无法识别maven.compiler.release配置的JDK版本问题

Sonar-Maven-Plugin 与 Maven-Compiler-Plugin 的版本匹配行为分析

Sonar-Maven-Plugin的行为会因是否定义Maven-Compiler-Plugin而产生差异,我花了不少时间测试并寻找合适的配置方式。

先创建一个简单的Java Maven项目,简化后的pom.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>testing</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.release>17</maven.compiler.release>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

执行Sonar扫描命令:

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:<version>:sonar -Dsonar.login=<token>

测试案例

案例1

  • sonarqube-maven-plugin版本:3.7.0.1746
  • pom.xml中定义了maven.compiler.release
  • pom.xml中未定义maven-compiler-plugin

结果:

Configured Java source version (sonar.java.source): 5

案例2

  • sonarqube-maven-plugin版本:3.7.0.1746
  • pom.xml中定义了maven.compiler.release
  • pom.xml中定义了maven.compiler.source
  • pom.xml中未定义maven-compiler-plugin

结果:

Configured Java source version (sonar.java.source): 17

这说明Sonar插件只能从maven.compiler.source而非maven.compiler.release中获取Java版本信息。

案例3

  • sonarqube-maven-plugin版本:3.7.0.1746
  • pom.xml中定义了maven.compiler.release
  • pom.xml中定义了maven-compiler-plugin(版本3.8.1)

结果:

Configured Java source version (sonar.java.source): 6

目前不清楚为何定义Maven Compiler Plugin后,识别到的Java版本会发生变化。

案例4

  • sonarqube-maven-plugin版本:3.7.0.1746
  • pom.xml中定义了maven.compiler.release
  • pom.xml中定义了maven-compiler-plugin(版本3.10.1)

结果:

Configured Java source version (sonar.java.source): 7

目前不清楚为何使用不同版本的Maven Compiler Plugin后,识别到的Java版本会发生变化。

案例5

  • sonarqube-maven-plugin版本:3.9.1.2184
  • pom.xml中定义了maven.compiler.release
  • pom.xml中未定义maven-compiler-plugin

结果:

Configured Java source version (sonar.java.source): 5

升级Sonar Maven Plugin版本无法解决该问题。


内容的提问来源于stack exchange,提问作者Franz Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:50:35