Sonar-maven-plugin не может распознать версию jdk из «maven.compiler.release»

Поведение 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>

Исполнение

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 определено.

  • maven-compiler-plugin НЕ определяется в pom.xml

Результат:

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 определенным

  • maven-compiler-plugin НЕ определяется в pom.xml

Результат:

(Это означает, что плагин может получить версию только из source вместо release)

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

Случай 3:

  • sonarqube-maven-plugin версия: 3.7.0.1746

  • pom.xml с maven.compiler.release определенным

  • maven-compiler-plugin (3.8.1) определяется

Результат:

(Понятия не имею, почему версия меняется, когда определяется подключаемый модуль компилятора maven.)

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

Случай 4:

  • sonarqube-maven-plugin версия: 3.7.0.1746

  • pom.xml с maven.compiler.release определенным

  • maven-compiler-plugin (3.10.1) определяется

Результат:

(Не знаю, почему версия меняется, когда определена другая версия плагина компилятора maven.)

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

Случай 5:

  • sonarqube-maven-plugin версия: 3.9.1.2184

  • pom.xml с maven.compiler.release определенным

  • maven-compiler-plugin НЕ определяется в pom.xml

Результат:

(Обновление плагина sonar maven не помогает.)

Configured Java source version (sonar.java.source): 5
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Правильная настройка

  • sonarqube-maven-plugin с версией 3.8.0 или выше.

  • Определите maven-compiler-plugin в pom.xml с версией 3.6.0 или выше.

Исполнение:

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

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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
            </plugin>
        </plugins>
    </build>

</project>

Другие вопросы по теме