我已经将QueryDSL集成到我的Spring启动项目中。
build.gradle:
//dependencies
compile("com.mysema.querydsl:querydsl-jpa:3.7.4")
compile("com.mysema.querydsl:querydsl-apt:3.7.4:jpa")
idea {
module {
sourceDirs += file('src/main/generated/')
generatedSourceDirs += file('src/main/generated/')
}
}
生成的
.class
和.java
(Q类)文件当前部署到创建实体类文件的build/classes/main/my/package/model
中。如何配置
JPAAnnotationProcessor
将生成的源(例如QMyEntity.java)放入src/main/generated
? 最佳答案
您可以尝试类似的方法(困难的方式):
def queryDslOutput = file("src/main/generated")
sourceSets {
main {
java {
srcDir queryDslOutput
}
}
}
task generateQueryDSL(type: JavaCompile, group: 'build') {
source = sourceSets.main.java
classpath = configurations.compile
destinationDir = queryDslOutput
options.compilerArgs = [
"-proc:only",
"-processor", 'com.querydsl.apt.jpa.JPAAnnotationProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor'
]
}
compileJava.dependsOn(generateQueryDSL)
clean {
delete queryDslOutput
}
如果您使用的是lombok,则需要编译器选项。
或者,如果您使用querydsl-plugin,则可以配置输出目录(简便方法):
def generatedClassesPath= "build/generated/source/querydsl/main"
querydsl {
jpa = true
querydslSourcesDir = generatedClassesPath
}
您总是可以通过Intellij Idea将生成的源添加到类路径以捕获文件:
def queryDslOutput = file(generatedClassesPath)
sourceSets {
main {
java {
srcDir queryDslOutput
}
}
}
从插件文档中:
querydslSourcesDir
项目相对路径到查询的位置
元模型源在其中创建。无论哪个注释都没关系
使用处理器,所有元模型类都将在
这个目录。
默认为
src/querydsl/java
。关于java - 更改QueryDSL生成的文件目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46422919/