Java 构建已开始失败 - 编译致命错误:java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor

bee*_*eek 7 java bitbucket amazon-ec2

我们在 EC2 上有一个 Java 11 服务器,它刚刚开始构建失败并出现以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) 
on project showhow-server: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x49d0e934) 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 @0x49d0e934 -> [Help 1]
[ERROR] 
Run Code Online (Sandbox Code Playgroud)

构建来自 BitBucket 管道。

知道它可能是什么吗?

小智 13

将 lombok 依赖升级到 1.18.20

  • 随着java 11将lombok版本从1.18.16更改为1.18.20,这对我来说就成功了。谢谢! (2认同)
  • 使用适用于arm64的java 17,这解决了我的错误。 (2认同)
  • 对于arm64的java 17,它可以工作,谢谢。 (2认同)

She*_*men 6

我也使用 java 11 并通过将其添加到 POM 插件部分来解决问题。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <fork>true</fork>
                <!-- this is to fix bitbucket pipeline build error due to Lombok processing -->
                <compilerArgs>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED</arg>
                </compilerArgs>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

java.version是11,lombok.version是1.18.18