在我的项目中,我们使用Hibernate的(JPA)Metamodel Generator来使我们的Criteria查询类型安全。它在我们的应用程序中运行得很好,但是,当我们使用IDE在Maven模块中运行JUnit测试时,它们会失败,并出现以下错误:-Error:java: Annotation processor 'org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor' not found
我猜这是由于以下在我们生成的类:-@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor") @StaticMetamodel(MyEntity.class)
当Maven将测试作为构建过程的一部分运行时,它们完全没有问题。
我怀疑我的IDE(IntelliJ IDEA 14)的设置中缺少了一些东西。您知道这可能是什么吗?或者我在Maven中做错了什么?:-
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>4.3.4.Final</version>
<optional>true</optional>
</dependency>
</dependencies>
</plugin>
2条答案
按热度按时间vc9ivgsu1#
我在升级到IntelliJ IDEA 14.1.2后遇到了类似的问题。对我来说,以下操作解决了该问题:
转到设置〉构建、执行、部署〉编译器〉注解处理器。
在这个配置面板的左边,我有一个**
Annotation profile
,用于我的项目中的每个maven模块。我自己没有设置这些配置文件:也许它们是由IDE
推断出来的。我不知道,但是在某些注解配置文件中,启用注解处理flag
是启用的。而且,在某些情况下,JPAMetaModelEntityProcessor在这里被显式地列为注解处理器。在从配置文件中删除注解处理器并禁用checkbox
之后,错误消失了,我的测试成功运行。zhte4eai2#
@Jeroen Noels的回答禁用了IDEA中的注解处理。
为了使其保持启用状态,我添加了
Maven依赖项,即类路径。请注意,范围是
provided
!