gpt4 book ai didi

gradle - QueryDSL、spring-boot 和 Gradle

转载 作者:行者123 更新时间:2023-12-04 01:05:38 24 4
gpt4 key购买 nike

我希望通过 gradle 将 querydsl 带入我的 spring-boot 项目。尽管在网上找到了几个例子,但由于依赖问题(我认为),它们中没有一个对我有用。根据 QueryDSL 支持论坛,尚不支持 gradle。但我想知道是否有人设法让它工作了所有 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 { 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')
}
}

但是 gradle 失败了:
Could not find method querydslapt() for arguments [com.mysema.querydsl:querydsl-apt:3.3.2] 

我曾尝试将 querydsl-apt 版本更改为较早的版本,但出现相同的错误。

最佳答案

Spring Boot 1.3.5 的工作配置和支持的 QueryDSL,使用 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"
}

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

关于gradle - QueryDSL、spring-boot 和 Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22773639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com