代码之家  ›  专栏  ›  技术社区  ›  Jose Martinez

无法使用Maven 3.8编译JDK 17:错误:模块JDK.compiler没有“打开com.sun.tools.javac.processing”到未命名的模块

  •  1
  • Jose Martinez  · 技术社区  · 3 年前

    我正试图使用JDK17和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也会出现这种情况。在pom.xml中通过 java.version , maven.compiler.source maven.compiler.target .只使用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>
    

    编辑:我也用龙目

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

    编辑:我不认为这和另一个问题是同一个问题,因为我搜索时出现了错误消息,而其他问题从未出现在结果中。为了回答这个问题,你需要知道这个错误与龙目有关。这个错误并没有说明龙目是罪魁祸首。

    0 回复  |  直到 3 年前
        1
  •  10
  •   khmarbaise    3 年前

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