如何使用gradle生成谓词类(Q *类)?我想使用Spring数据为Mongo使用Q *类。 Spring文档显示了maven和ant版本,但没有gradle。
有没有我可以使用的插件?
答案 0 :(得分:3)
您可以使用Generating JPA2 Metamodel from a Gradle build script
中提供的相同方法只需用Spring Mongodb处理器替换Querydsl JPA APT处理器。
答案 1 :(得分:2)
我的项目中有一个例子:spring-data-demo
您需要定义要扫描的相关来源。 在这种情况下它是:'org / springframework / data / demo / data / **' queryDslVersion在gradle.properties中定义
configurations {
queryDslTool
}
dependencies {
queryDslTool group: 'com.mysema.querydsl', name: 'querydsl-apt', version: queryDslVersion
}
task generateSources {
def queryDslDir = new File(buildDir, 'generated-sources/java')
sourceSets.main.java.srcDirs += queryDslDir
inputs.files(sourceSets.main.java.srcDirs)
outputs.dir(queryDslDir)
doLast {
if (!queryDslDir.exists()) {
queryDslDir.mkdirs()
}
def classPathStr = (configurations.queryDslTool + sourceSets.main.runtimeClasspath).asPath
ant {
javac(classpath: classPathStr, includes: 'org/springframework/data/demo/data/**', includeantruntime: false) {
sourceSets.main.java.srcDirs.each {
if (it != queryDslDir) {
src(path: it.path)
}
}
compilerarg value: '-proc:only'
compilerarg value: '-processor'
compilerarg value: 'com.mysema.query.apt.QuerydslAnnotationProcessor'
compilerarg value: '-s'
compilerarg value: queryDslDir.path
}
echo(message: 'Generated QueryDSL Helpers')
}
}
}
compileJava.dependsOn generateSources