当前位置: 首页 > 知识库问答 >
问题:

Lombok注释:合并后编译失败

卫皓
2023-03-14

我们有一个相当大的项目,使用maven、Spring boot、querydsl、lombok。我有两个分支,两个版本都编译成功。(>使用@Sl4j生成的log或无法在具有@Getter的类实例上找到getXyz()

我甚至不知道从哪里开始,所以任何关于如何确定错误的提示都是非常好的。当然,您还需要哪些进一步的信息来帮助?

编辑感谢到目前为止的提示,我现在尝试调整我们的pom。xml配置,使lombok由maven编译器插件的annotationProcessorPaths触发—我的新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配置不正确吗?

共有1个答案

向锦
2023-03-14

事实上,我们的pom.xml设置非常好。但是,在合并期间,git复制了一个hibernate@EntityListener注释。结果,龙目鱼莫名其妙......不工作了?当我删除其中一个注释时,一切又恢复正常了。

有没有办法像lombok日志一样检测到这个问题?

 类似资料:
  • 问题内容: 我已经安装了intellij idea(lombok-plugin-0.8.6-13)插件。 在类路径中添加了lombok.jar 我可以在结构窗口中找到getter和setter。并且Intellij没有显示任何错误。 设置-Lombok插件-经过验证的lombok Intellij配置,它表明“ IntelliJ的配置似乎还可以”。 看来一切都很好。但是,当我编译测试时,会出现错误

  • 我的项目有问题。它是一个Spring CRUD RestFul API,公开提供Json数据的服务。我使用JDK-7、Eclipse Neon和Maven进行编码、构建,并将项目部署到JBossEAP 6.4服务器中。一切正常,服务响应正确。 所以我决定添加Lombok,以减少boiler代码并提高代码的可读性。顺便说一句,我之前在另一个项目中使用了龙目,效果很好。 这是我的问题,包括龙目:当我使

  • 我有一个JHipster项目,我在build.gradle中添加了对Lombok的依赖: 我为IntelliJ安装了Lombok插件。我已经在IntelliJ中打开了注释处理,我可以在IntelliJ IDE中生成而不出错,但是当我尝试从命令行生成时,会出现生成错误。Gradle似乎没有处理注释,也找不到getter/setter和log声明。项目运行时也不会出现任何错误。 命令行: 错误: 错误

  • 问题内容: 由于下载了最新的SDK并安装了Android Studio,因此我的项目无法构建。我收到以下消息: 清单合并失败,出现多个错误 我的gradle应用: 我的清单 在合并清单中这样写: 我尝试了其他问题的很多解决方案,但没有结果,非常感谢。 问题答案: “ tools:replace =” android:appComponentFactory“ <-这行是向Manifest合并说,您将

  • 我有一把刀: 问题是,当我试图使用DAO进行加载调用时,使用DynamoDBMapper以field d1作为哈希键来获取项目,它会抛出一个DynamoDBExc0019,说:为公共DAO. getField2()找到了空键,但实际上表的值对应于field d2。问题,这是因为Lombok注释而不是手动突变代码,还是一般来说我们一起使用Lombok和DynamoDBAnnotions?

  • 我的项目有问题。它是一个Spring CRUD RestFul API,公开提供Json数据的服务。我使用JDK-7、EclipseNeon和Maven进行编码、构建,并将项目部署到JBossEAP6.4服务器中。一切正常,服务响应正确。 因此,我决定添加Lombok,以减少锅炉代码并提高代码的可读性。顺便说一句,我以前在另一个项目中使用了龙目,效果很好。 这是我的问题,在包括Lombok之后:-