将 Azure DevOps Classic Pipeline 与 SonarCloud 集成时出错:Java 版本问题

问题描述 投票:0回答:1

我在尝试将 Azure DevOps 经典管道与 SonarCloud 集成到利用 Maven 进行包管理的 Java 项目时遇到问题。

我最初使用 Jenkins 测试了 SonarCloud 集成,这似乎是 Java 版本问题。但是,即使在服务器上升级 Java 版本并更新某些 SonarQube 插件后,错误仍然存在。因此,我决定切换到 Azure DevOps,但我仍然遇到同样的问题。

[INFO] Reactor Summary:
[INFO]
[INFO] petclinic_api 0.0.1-SNAPSHOT ....................... FAILURE [  5.253 s]
[INFO] dto 0.0.1-SNAPSHOT ................................. SUCCESS [  9.515 s]
[INFO] exception 0.0.1-SNAPSHOT ........................... SUCCESS [  0.200 s]
[INFO] petclinic-service-internal 2018.9-RELEASE .......... SUCCESS [ 39.459 s]
[INFO] petclinic-service-external 2018.9-RELEASE .......... SUCCESS [  5.430 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar
(default-cli) on project my-project-name: The plugin [python] does not support Java 11.0.22: 
org/sonar/plugins/python/PythonPlugin 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 -> [Help 1]

以下是管道中的主要配置:

Classic Pipeline Name: Maven with SonarCloud
Agent: Azure Pipelines (ubuntu-latest)
Scanner: Use standalone scanner
Mode: Manual provide configuration
Maven goals and options: package  -e  -Dmaven.test.skip=true
Code analysis: Run SonarQube or SonarCloud analysis (use latest version)
JDK version: Default

主要pom.yaml:

<?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>com.petclinic</groupId>
   <artifactId>petclinic_service</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>petclinic_api</name>
   <url>http://maven.apache.org</url>
   <modules>
      <module>dto</module>
      <module>exception</module>
      <module>petclinic-saas</module>
      <module>petclinic-api</module>
   </modules>
</project>

已采取以下步骤:

  • 我升级了服务器上的Java版本并更新了某些SonarQube插件。我希望这些更改能够解决与 SonarCloud 的兼容性问题。
  • 也升级了 Jenkins 版本,但响应没有变化。
  • 将JDK版本更改为17,然后收到以下错误
[INFO] Reactor Summary:
[INFO]
[INFO] petclinic_api 0.0.1-SNAPSHOT ....................... SUCCESS [  0.005 s]
[INFO] dto 0.0.1-SNAPSHOT ................................. SUCCESS [  9.315 s]
[INFO] exception 0.0.1-SNAPSHOT ........................... SUCCESS [  0.219 s]
[INFO] petclinic-service-internal 2018.9-RELEASE .......... FAILURE [ 18.852 s]
[INFO] petclinic-service-external 2018.9-RELEASE .......... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile)
on project petclinic-saas: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor
(in unnamed module @0x1667a6f7) cannot access class
com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export
com.sun.tools.javac.processing to unnamed module @0x1667a6f7 -> [Help 1]

有人可以提供指导或帮助来解决这个问题吗?任何见解或建议将不胜感激。

java maven azure-devops azure-pipelines sonarcloud
1个回答
0
投票

无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar 项目 my-project-name 上的(default-cli):插件 [python] 不支持 Java 11.0.22

对于这个问题,这意味着你需要升级你的java版本。

编译致命错误:java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (在未命名模块@0x1667a6f7中)无法访问类..

将Java版本升级到17后,出现此问题的原因是依赖

org.projectlombok
版本与Java版本不兼容。

我在使用1.18.10版本时可以重现同样的问题。

enter image description here

要解决这个问题,需要升级依赖版本

org.projectlombok
(例如1.18.28版本)。

例如:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.28</version>
        <scope>provided</scope>
    </dependency>

结果:

enter image description here

更详细的信息,可以参考这个票证:使Lombok兼容JDK

© www.soinside.com 2019 - 2024. All rights reserved.