我正在为我正在做的for服务器项目使用Spring数据。对于我的构建工具,我正在使用Gradle,我正在尝试集成QueryDSL,以便能够在我的应用程序中针对我的数据库编写动态查询(如果有关系的话,可以使用MongoDB)。关于正确设置环境,我有几个问题:
1)在集成QueryDSL时,我注意到我的一些构建步骤开始失败。具体来说,有两个名为compileQuerydslJava和findbugsQuerydsl (后者来自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。
发布于 2022-04-06 07:22:38
一个老问题,但答案可能有用。
我与插件compileQuerydslJava com.ewerk.gradle.plugins.querydsl有类似的问题。
尝试从querydsl generated q source code is not imported correctly或QueryDSL 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被删除,但是所有的构建和工作都是正确的
https://stackoverflow.com/questions/53639335
复制相似问题