无法使用 Maven 3.8 编译 JDK 17:错误:模块 jdk.compiler 未“打开 com.sun.tools.javac.processing”至未命名模块 [重复]

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

我正在尝试使用 JDK 17 和 Maven 3.8.4 编译现有的 Spring Boot 项目,但我不断收到此错误。

无法将字段设为私有 com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs 可访问:模块 jdk.compiler 不“打开 com.sun.tools.javac.processing”到未命名模块@521e3470

旧版本的 Maven(例如 3.6)也会出现此问题。 JDK 16 也会发生这种情况。通过

java.version
maven.compiler.source
maven.compiler.target
在 pom.xml 中配置哪个版本的 Java 并不重要。仅用于进行编译的 JDK 版本...显示在
mvn -v
命令中。

该项目使用 JDK 15 可以正常编译。编译开始时,错误立即发生,就在说明正在编译多少个类的 INFO 消息之后。我的 Windows 笔记本电脑和 Ubuntu CI 服务器都会发生这种情况。

有什么想法吗?

编辑:添加更多 POM 文件。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.4</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>15</java.version>
    <maven.compiler.source>15</maven.compiler.source>
    <maven.compiler.target>15</maven.compiler.target>
    <spring-cloud.version>2020.0.4</spring-cloud.version>
    <ch.qos.logback.version>1.2.3</ch.qos.logback.version>
</properties>

编辑:我也使用Lombok

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.4</version>
    </dependency>

编辑:我认为这与另一个问题不是同一个问题,因为我通过错误消息进行搜索,并且其他问题从未在结果中出现。要回答这个问题,您需要知道该错误与 Lombok 有关,也就是说您已经需要知道错误的原因。该错误没有提示 Lombok 是罪魁祸首。

java maven lombok java-17
1个回答
13
投票

问题是 lombok 项目的使用,在本例中使用的不是最新版本。

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