작성
·
587
0
//querydsl 추가
buildscript {
dependencies {
classpath("gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10")
}
}
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'jpabook'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
//apply plugin: 'io.spring.dependency-management'
apply plugin: "com.ewerk.gradle.plugins.querydsl"
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-devtools'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5'
// implementation 'org.hibernate:hibernate-core:5.4.13.Final'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//추가
testImplementation("org.junit.vintage:junit-vintage-engine") {
exclude group: "org.hamcrest", module: "hamcrest-core"
}
//querydsl 추가
implementation 'com.querydsl:querydsl-jpa'
//querydsl 추가
implementation 'com.querydsl:querydsl-apt'
}
tasks.named('test') {
useJUnitPlatform()
}
//querydsl 추가
//def querydslDir = 'src/main/generated'
def querydslDir = "src/main/generated"
querydsl {
library = "com.querydsl:querydsl-apt"
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main {
java {
srcDirs = ['src/main/java', querydslDir]
}
}
}
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
configurations {
querydsl.extendsFrom compileClasspath
}
//Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거
clean {
delete file('src/main/generated')
}
이런식으로 build.gradle을 구성했는데요. 어플리케이션을 실행하려고만 하면
이런 에러가 발생하면서 실행이 되지 않습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. 쿼리 DSL에 관한 질문이시군요!
제가 보았을 때, 코드에서 querydsl-plugin을 추가하는 부분이 있는 것 같습니다. 이 부분은 Gradle 빌드 스크립트에 추가되는 것으로, 이 플러그인을 사용하면 쿼리 DSL을 더 편리하게 사용할 수 있습니다.
이 플러그인을 사용하기 위해서는 build.gradle 파일에 해당 플러그인의 의존성을 추가해야 합니다. 현재 의존성 코드는 다음과 같습니다.
buildscript {
dependencies {
classpath(“gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10”)
}
}
그리고 plugins 블록에도 해당 플러그인을 추가해야 합니다.
plugins {
…
id ‘java’
id ‘com.ewerk.gradle.plugins.querydsl’
}
이렇게 추가하고 나면, Gradle 빌드 시에 쿼리 DSL 관련 코드를 자동으로 생성해 줍니다. 이후에는 @QueryProjection이나 Q타입 클래스를 사용하여 쿼리를 작성하고 실행할 수 있게 됩니다.
이 코드 조각이 제가 이해한 내용이며, 추가적인 질문이나 궁금한 점이 있다면 언제든지 알려주세요!