使用Spring和gradle的Mongo的QueryDSL

时间:2014-03-21 16:24:57

标签: gradle spring-data-mongodb querydsl

如何使用gradle生成谓词类(Q *类)?我想使用Spring数据为Mongo使用Q *类。 Spring文档显示了maven和ant版本,但没有gradle。

有没有我可以使用的插件?

2 个答案:

答案 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