【发布时间】:2025-11-27 19:20:03
【问题描述】:
我们有一个相当大的项目,使用 maven、spring boot、querydsl、lombok。
我有 2 个分支,两个版本都编译成功。 (mvn clean compile) 但是,在合并之后,构建失败,这些编译器错误中的每一个看起来都像 lombok 没有正确运行 - 错误就像 cannot find symbol [ERROR] symbol: variable log 与 @Sl4j 或 cannot find getXyz() 在具有 @Getter 的类实例上生成的日志一样。
我什至不知道从哪里开始,所以任何关于如何确定该错误的提示都会很棒。当然,您还需要哪些进一步的信息来提供帮助?
编辑 感谢到目前为止的提示,我现在尝试调整我们的 pom.xml 配置,以便由 maven-compiler-plugin 的 annotationProcessorPaths 触发 lombok - 我的新 pom.xml / 插件配置是:
<build>
<pluginManagement>
<plugins>
<!-- maven dependancy update management plugins-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M2</version>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0.5</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<excludes>
<exclude>org.apache.commons:commons-collections4</exclude>
</excludes>
</configuration>
</plugin>
<!--querydsl configuration-->
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/querydsl</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArgs>
<arg>-Aquerydsl.entityAccessors=true</arg>
<arg>-Aquerydsl.useFields=false</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</path>
<path>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-core</artifactId>
<version>${querydsl.version}</version>ø
</path>
<path>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
</path>
<path>
<groupId>com.mysema.codegen</groupId>
<artifactId>codegen</artifactId>
<version>0.6.8</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
</plugins>
</pluginManagement>
</build>
此配置编译问题发生前的版本;但是,合并后版本的构建错误保持不变。我的 lombok 配置不正确吗?
【问题讨论】:
-
您是否启用了注释处理器?你在使用mapstruct吗?你用的是什么IDE?有lombok插件吗?
-
尝试将 Lombok 包含在 anootationProcessorPaths 中。这已经在这里讨论过 - *.com/questions/47676369/…