我在尝试将 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>
已采取以下步骤:
[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]
有人可以提供指导或帮助来解决这个问题吗?任何见解或建议将不胜感激。
无法执行目标 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版本时可以重现同样的问题。
要解决这个问题,需要升级依赖版本
org.projectlombok
(例如1.18.28版本)。
例如:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
<scope>provided</scope>
</dependency>
结果:
更详细的信息,可以参考这个票证:使Lombok兼容JDK