如何在spring boot 1.4.1中配置querydsl?

时间:2016-11-07 21:30:55

标签: java spring spring-boot spring-data querydsl

我尝试使用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 个答案:

答案 0 :(得分:1)

将依赖项放入插件中。

<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>
    <dependencies>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</plugin>