java - 如何将 lombok 和 JPAMetalModel 处理器与 maven 合并

标签 java maven jpa lombok

如何使用Lombok当 JPAMetaModelEntityProcessor 注解处理器在 Maven 构建中被激活时。

Maven 配置:

[...]
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArguments>
                    <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
                </compilerArguments>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
[...]

在构建过程(mvn clean install)期间,MetaModel 对象被正确生成,但 Lombok Annotation 处理器似乎不再添加到 Javac 编译中。所有@Getter、@Setter、...都不起作用。

最佳答案

查看 lombok 项目后,我找到了解决方案。

当将 JPAMetaModelEntityProcessor 指定为 javac 注释处理器时,lombok 处理器似乎被移除了。

要纠正这个问题,我们可以简单地在 maven-compiler-plugin 中添加 Lombok 注解处理器:

[...]
<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <compilerArguments>
            <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor</processor>
        </compilerArguments>
    </configuration>
</plugin>
[...]

关于java - 如何将 lombok 和 JPAMetalModel 处理器与 maven 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805327/

相关文章:

java - 当前测试使用 MapState 的 DoFn 的最佳实践是什么

java - 使用 Redis 创建名称为 'enableRedisKeyspaceNotificationsInitializer' 的 bean 时出错

spring - 如何排除 node_modules 目录

java - Maven 包 org.apache.commons.codec.binary 不存在

java - JPA OneToMany、ManyToOne 关系的无限递归引用

spring - 如何使用 Spring Data JPA 方法在 Kotlin 的 try-with-resources block 中返回 Stream?

java - Facelet 不传递来自 <h :inputText> 的信息

Java - 来自受限包的访问方法

java - 将混音器更改为在java中输出声音

java - FingerPaint 删除显示黑线