QueryDSL,spring-boot&摇篮 [英] QueryDSL, spring-boot & Gradle

查看:254
本文介绍了QueryDSL,spring-boot&摇篮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望通过gradle将querydsl带入我的spring-boot项目。尽管在网上找到了几个例子,但由于依赖关系问题(我认为),它们都没有为我工作。根据QueryDSL支持论坛,gradle尚不支持。但是我想知道所有的石碴和石块。如果有人设法让它工作,spring-boot会被创建吗?

这是我的build.gradle:

  apply plugin:'java'
apply plugin:'groovy'
apply plugin:'idea'
apply plugin:'spring-boot'
apply plugin:'jacoco'
apply plugin:'war'

buildscript {
repositories {
maven {urlhttp://repo.spring .io / libs-snapshot}
mavenLocal()
}
依赖关系{
classpath(org.springframework.boot:spring-boot-gradle-plugin:1.0.0 .RC4)
}
}

储存库{
mavenCentral()
maven {url:http://repo.spring.io/ libs-snapshot}
// maven {url:http://repo.spring.io/milestone}

}

依赖关系{
compile(org.springframework.boot:spring-boot-starter-web:1.0.0.RC5)
compile(org.springframework.boot:spring-boot-starter-data-jpa:1.0 .0.RC5)
compile(org .springframework:spring-orm:4.0.0.RC1)
compile(org.hibernate:hibernate-entitymanager:4.2.1.Final)
compile(com.h2database:h2:1.3
compile(joda-time:joda-time:2.3)
compile(org.thymeleaf:thymeleaf-spring4)
compile(org.codehaus.groovy .modules.http-builder:http-builder:0.7.1)
compile('org.codehaus.groovy:groovy-all:2.2.1')
compile('org.jadira.usertype :usertype.jodatime:2.0.1')

//这行失败
querydslaptcom.mysema.querydsl:querydsl-apt:3.3.2

testcompile('org.spockframework:spock-core:0.7-groovy-2.0'){
exclude group:'org.codehaus.groovy',module:'groovy-all'
}
testCompile( 'org.codehaus.groovy.modules.http建设者:HTTP建设者:0.7+')
testCompile( JUnit的:JUnit的)
}

jacocoTestReport {
group =报告
description =运行测试后生成Jacoco覆盖报告。
}

任务包装器(类型:包装器){
gradleVersion ='1.11'
}


sourceSets {
main {
generated {
java {
srcDirs = ['src / main / generated']
}
}

java {
srcDirs = []
}
groovy {
srcDirs = ['src / main / groovy','src / main / java']
}
资源{
srcDirs = ['src / main / resources']
}

output.resourcesDir =build / classes / main
}

test {
java {
srcDirs = []
}
groovy {
srcDirs = ['src / test / groovy',' src / test / java']
}
资源{
srcDirs = ['src / test / resources']
}

output.resourcesDir = build / classes / test
}
}


配置{
//不确定这是什么,我在例子中看到它,但没有在文档中看到
querydslapt
}

任务generateQueryDSL(类型:JavaCompile,组:'build',描述:'生成QueryDSL查询类型'){
source = sourceSets.main.java
classpath = configurations.compile + configurations.querydslapt
options.compilerArgs = [
-proc:only,
-processor,com.mysema.query.apt.jpa.JPAAnnotationProcessor
]
destinationDir = sourceSets.generated.java.srcDirs.iterator()。下一个()
}

compileJava {
dependsOn generateQueryDSL
源generateQueryDSL.destinationDir
}

compileGeneratedJava {
dependsOn generateQueryDSL
options.warnings =假
类路径+ = sourceSets.main.runtimeClasspath
}

清理{
删除sourceSets.generated.java.srcDirs
}

ide a {
module {
sourceDirs + = file('src / main / generated')
}
}
$ b

但是gradle失败:

$ p $ 找不到方法querydslapt() for arguments [com.mysema.querydsl:querydsl-apt:3.3.2]

我试过改变将querydsl-apt版本更新到更早的版本,但我得到了同样的错误。

解决方案

Spring Boot 1.3.5的工作配置和支持QueryDSL,用gradle 2.14测试。

$ ex $ {
queryDslVersion ='3.6.3'
javaGeneratedSources =文件($ buildDir / generated-sources / java)
}

compileJava {
doFirst {
javaGeneratedSources.mkdirs()
}
options.compilerArgs + = [
'-parameters','-s',javaGeneratedSources
]
}

依赖关系{
compile(' org.springframework.boot:弹簧引导启动ER-数据JPA)
编译 com.mysema.querydsl:querydsl-JPA:$ queryDslVersion

compileOnlycom.mysema.querydsl:querydsl-贴切:$ queryDslVersion:JPA

完整的项目源代码: spring-boot-querydsl


I was hoping to bring querydsl into my spring-boot project via gradle. Despite finding a couple of examples online, none of them actually work for me because of issues with dependencies (I think). According to the QueryDSL support forum, gradle is not supported yet. But I was wondering with all the gradle & spring-boot being created if someone has managed to make it work yet?

Here is my build.gradle:

apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'jacoco'
apply plugin: 'war'

buildscript {
    repositories {
        maven { url "http://repo.spring.io/libs-snapshot" }
        mavenLocal()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.0.RC4")
    }
}

repositories {
    mavenCentral()
    maven { url: "http://repo.spring.io/libs-snapshot" }
//    maven { url: "http://repo.spring.io/milestone" }

}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:1.0.0.RC5")
    compile("org.springframework.boot:spring-boot-starter-data-jpa:1.0.0.RC5")
    compile("org.springframework:spring-orm:4.0.0.RC1")
    compile("org.hibernate:hibernate-entitymanager:4.2.1.Final")
    compile("com.h2database:h2:1.3.172")
    compile("joda-time:joda-time:2.3")
    compile("org.thymeleaf:thymeleaf-spring4")
    compile("org.codehaus.groovy.modules.http-builder:http-builder:0.7.1")
    compile('org.codehaus.groovy:groovy-all:2.2.1')
    compile('org.jadira.usertype:usertype.jodatime:2.0.1')

    // this line fails
    querydslapt "com.mysema.querydsl:querydsl-apt:3.3.2"

    testCompile('org.spockframework:spock-core:0.7-groovy-2.0') {
        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
    }
    testCompile('org.codehaus.groovy.modules.http-builder:http-builder:0.7+')
    testCompile("junit:junit")
}

jacocoTestReport {
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}


sourceSets {
    main {
        generated {
            java {
                srcDirs = ['src/main/generated']
            }
        }

        java {
            srcDirs = []
        }
        groovy {
            srcDirs = ['src/main/groovy', 'src/main/java']
        }
        resources {
            srcDirs = ['src/main/resources']
        }

        output.resourcesDir = "build/classes/main"
    }

    test {
        java {
            srcDirs = []
        }
        groovy {
            srcDirs = ['src/test/groovy', 'src/test/java']
        }
        resources {
            srcDirs = ['src/test/resources']
        }

        output.resourcesDir = "build/classes/test"
    }
}


configurations {
    // not really sure what this is, I see it in examples but not in documentation
    querydslapt
}

task generateQueryDSL(type: JavaCompile, group: 'build', description: 'Generates the QueryDSL query types') {
    source = sourceSets.main.java
    classpath = configurations.compile + configurations.querydslapt
    options.compilerArgs = [
            "-proc:only",
            "-processor", "com.mysema.query.apt.jpa.JPAAnnotationProcessor"
    ]
    destinationDir = sourceSets.generated.java.srcDirs.iterator().next()
}

compileJava {
    dependsOn generateQueryDSL
    source generateQueryDSL.destinationDir
}

compileGeneratedJava {
    dependsOn generateQueryDSL
    options.warnings = false
    classpath += sourceSets.main.runtimeClasspath
}

clean {
    delete sourceSets.generated.java.srcDirs
}

idea {
    module {
        sourceDirs += file('src/main/generated')
    }
}

But gradle fails with:

Could not find method querydslapt() for arguments [com.mysema.querydsl:querydsl-apt:3.3.2] 

I have tried changing the querydsl-apt version to earlier ones but I get the same error.

解决方案

Working configuration for Spring Boot 1.3.5 and supported QueryDSL, tested with gradle 2.14.

ext {
    queryDslVersion = '3.6.3'
    javaGeneratedSources = file("$buildDir/generated-sources/java")
}

compileJava {
    doFirst {
        javaGeneratedSources.mkdirs()
    }
    options.compilerArgs += [
            '-parameters', '-s', javaGeneratedSources
    ]
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile "com.mysema.querydsl:querydsl-jpa:$queryDslVersion"

    compileOnly "com.mysema.querydsl:querydsl-apt:$queryDslVersion:jpa"
}

Complete project source code: spring-boot-querydsl

这篇关于QueryDSL,spring-boot&摇篮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆