我试图使用spring-data-jpa为项目启用querydsl,但我得到一些编译错误,如:
The type com.querydsl.core.types.Predicate cannot be resolved. It is indirectly referenced from required .class files
另外,当我运行mvn clean install时,我得到了这个:
Caused by: java.lang.ClassNotFoundException: com.querydsl.core.annotations.QueryEntities
我查看了我的类路径中的jar,我可以看到querydsl-core 4.1.4,querydsl-apt 4.1.4和querydsl-jpa 4.1.4 . 但该项目仍然没有为我编译,springboot 1.4.1和querydsl有什么问题吗?
我在我的pom.xml文件中有这个
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<scope>provided</scope>
</dependency>
和插件
<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/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
难道我做错了什么?
---更新---
我从querydsl 4.1.4降级到4.1.3,至少是在编译项目 . 现在,我可以开始一些测试,我将发布我的发现 .
我认为这个问题仍然存在,因为默认情况下spring boot 1.4.1附带了querydsl 4.1.4版本 .
1 回答
将依赖项放在插件中 .