代码之家  ›  专栏  ›  技术社区  ›  suman j

使用Spring和gradle的Mongo的QueryDSL

  •  4
  • suman j  · 技术社区  · 11 年前

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

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

    2 回复  |  直到 11 年前
        1
  •  3
  •   Community CDub    8 年前

    您可以使用此处介绍的相同方法 Generating JPA2 Metamodel from a Gradle build script

    只需将Querydsl JPA APT处理器替换为Spring Mongodb处理器即可。

        2
  •  3
  •   Corneil du Plessis    10 年前

    我的项目中有一个例子: 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