我已将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
?
答案 0 :(得分:0)
diff fileA fileB | grep "^>" | cut -c3- > fileA
如果使用lombok,则需要编译器选项。
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
}
您可以随时将生成的源添加到类路径以通过Intellij Idea捕获文件:
def generatedClassesPath= "build/generated/source/querydsl/main"
querydsl {
jpa = true
querydslSourcesDir = generatedClassesPath
}
来自插件文档:
def queryDslOutput = file(generatedClassesPath) sourceSets { main { java { srcDir queryDslOutput } } }
项目相对于querydsl所在的路径 创建元模型源。哪个注释无关紧要 使用处理器,将在其中创建所有元模型类 这个目录。
默认为
querydslSourcesDir
。