我不经常发帖,所以对于任何与礼仪有关的问题我提前表示歉意。我正在将现有应用程序从 Spring Boot 2.7.8 升级到 3.0.13。核心 Spring Boot 库是通过我们团队使用的自定义通用库引入的。我正在使用 IntelliJ 2022.1.2 Ultimate Edition(适用于 Mac)、JDK 17 和 Lombok。编译 POM 时,我收到多个与此类似的错误:
<file location>:[85,69] error: cannot find symbol
symbol: method getRuleName()
location: class RuleManagerDto
...还有这个:
<file location>:[9,64] error: cannot find symbol
symbol: class ResultBuilder
location: class Result
编译过程中从这一行之后开始出现错误:
maven-compiler-plugin:3.8.1:compile (default-compile)...
我假设问题与注释处理有关,特别是 @Data
和 @Builder
注释。我已尝试以下方法来解决该问题:
maven-compiler-plugin
元素下添加了以下代码:
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.6.0</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
</annotationProcessorPaths>
<annotationProcessorPath>
代替上面的 <path>
<optional>
属性<forceJavacCompilerUse>true</forceJavacCompilerUse>
这些潜在的补救措施都没有解决问题。我正在使缓存失效并在每次尝试修复后重新启动。我在编译时也使用了更新开关:
mvn clean -U install
。我的同事认为问题出在过时的相关库上,这是有道理的。但是,除了上面列出的类型之外,我没有收到任何错误,所以我不知道它可能是哪个库。
欢迎任何建议 - 谢谢。
这可能是 pom.xml 中 lombok 依赖性的问题。请检查您的配置是否如下(根据您的用例更改版本)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>