【问题标题】:A few questions about QueryDSL, Spring Data, and Gradle关于QueryDSL、Spring Data、Gradle的几个问题
【发布时间】:2018-12-05 19:20:42
【问题描述】:

我正在将 Spring Data 用于我正在处理的网络服务器项目。对于我的构建工具,我正在使用 Gradle,并且我正在尝试集成 QueryDSL,以便能够在我的应用程序中针对我的数据库(如果重要的话是 MongoDB)编写动态查询。我有几个关于正确设置环境的问题:

1) 在集成 QueryDSL 后,我注意到我的一些构建步骤开始失败。具体来说,有两个名为 compileQuerydslJavafindbugsQuerydsl(后者来自 FindBugs 插件)的构建步骤失败了。根据错误消息,QueryDSL 生成的文件似乎无法被必要的引擎拾取。具体来说,对于findbugsQuerydsl,我得到的错误如下所示:

> Task :my-service:findbugsQuerydsl FAILED
No files to be analyzed

对于 compileQuerydslJava,错误如下所示:

> Task :message-service:compileQuerydslJava FAILED
C:\MY_PATH\QMyEntity.java:3: error: package com.querydsl.core.types does not exist
import static com.querydsl.core.types.PathMetadataFactory.*;

如果我使用 -x 标志排除这些构建步骤,一切正常,代码编译并运行没有问题。但是,我有点不愿将其视为最佳解决方案。大概这些工具是正确开发的,应该能够配置为正常工作,所以我想知道我错过了什么。

2) 我团队中的另一位开发人员检查了此代码并尝试运行它,但 QueryDSL 生成的类并未自动为他创建。这导致他在应用程序中编译错误,直到他运行gradle build。我宁愿这不是标准做法,而是像库一样自动生成所需的 Querydsl 文件。有没有办法做到这一点?或者至少在编译时生成文件,这样就不会导致编译错误?

我不确定哪些信息有助于调试此问题,因此请提出任何有助于帮助我的问题。谢谢。

编辑:

1) 作为参考,我的 Querydsl 版本是 4.1.4。我知道这不是最新版本,但它是我用来设置 Querydsl 的教程中使用的版本。如果推荐我可以尝试 4.2.1。

【问题讨论】:

  • 你用的是什么版本的querydsl?
  • @RobertBain 信息已添加到 OP。

标签: gradle spring-data querydsl


【解决方案1】:

一个有点老的问题,但答案可能有用

插件com.ewerk.gradle.plugins.querydsl引起的compileQuerydslJava也有类似的问题

尝试以下步骤 querydsl generated q source code is not imported correctlyQueryDSL annotation processor and gradle plugin

querydsl版本解决方案4.2.1

如果您正在使用插件,请删除它

dependencies {
  ...
  compileOnly("org.projectlombok:lombok:${lombok_version}")
  compile("com.querydsl:querydsl-jpa:${querydsl_version}")
  compile("com.querydsl:querydsl-apt:${querydsl_version}")
  annotationProcessor(
        "org.springframework.boot:spring-boot-starter-data-jpa:${springBoot_version}",
        "com.querydsl:querydsl-apt:${querydsl_version}:jpa",
        "javax.annotation:javax.annotation-api:1.3.2",
        "org.projectlombok:lombok"
  )

}
sourceSets.main.java.srcDirs = ['build/generated/sources/annotationProcessor/java/main','src/main/java']

对我来说,在此更改步骤后compileQuerydslJava 消失了,但一切都构建并正常工作

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 2016-12-13
    • 2011-12-25
    • 2020-06-16
    • 2018-07-19
    • 2011-05-12
    • 2011-08-24
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多