Java构建已开始失败-编译时出现致命错误:Java.lang.IllegalAccessError:class lombok.javac.apt.LombokProcessor
我们在EC2上有一台Java 11服务器,它刚开始构建时出现以下错误:Java构建已开始失败-编译时出现致命错误:Java.lang.IllegalAccessError:class lombok.javac.apt.LombokProcessor,java,amazon-ec2,bitbucket,Java,Amazon Ec2,Bitbucket,我们在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.
[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]
构建来自BitBucket管道
知道它可能是什么吗?使用maven,我成功地使用它构建了(更改了源和目标以匹配我的java版本):
org.apache.maven.plugins
我也使用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>
org.apache.maven.plugins
maven编译器插件
3.8.1
${java.version}
${java.version}
真的
-J--addopens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
-J--addopens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED
org.projectlombok
龙目
${lombok.version}
java.verion是11,lombok.version是1.18.18将lombok依赖项升级到1.18.20,使用java 11将lombok版本从1.18.16更改为1.18.20,这正好帮了我一把。谢谢
<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>