작성
·
28
·
수정됨
0
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id "org.asciidoctor.jvm.convert" version "3.3.2"
}
group = 'org.spring'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
asciidoctorExt
}
repositories {
mavenCentral()
}
ext {
snippetsDir = file('build/generated-snippets')
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.security:spring-security-crypto'
implementation 'org.springframework.session:spring-session-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.security:spring-security-test'
implementation 'org.bouncycastle:bcprov-jdk15on:1.70'
implementation 'com.querydsl:querydsl-core:5.0.0'
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
asciidoctorExt "org.springframework.restdocs:spring-restdocs-asciidoctor:3.0.0"
testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:3.0.0"
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly "org.projectlombok:lombok"
testAnnotationProcessor "org.projectlombok:lombok"
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.modelmapper:modelmapper:3.2.0'
}
tasks.named('test') {
useJUnitPlatform()
}
test {
outputs.dir snippetsDir
}
asciidoctor {
inputs.dir snippetsDir
configurations 'asciidoctorExt'
dependsOn test
}
asciidoctor.doFirst {
delete file("src/main/resources/static/docs")
}
bootJar {
enabled = true
dependsOn asciidoctor
copy {
from asciidoctor.outputDir
into "src/main/resources/static/docs"
}
}
jar {
enabled = false
}
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
> Run with --info option to get more log output.
> Run with --scan to get full insights.
BUILD FAILED in 6s
안녕하세요
querydsl 빌드 후 Q class 임포트 하는 곳에서 에러가 발생합니다 ㅠ
구글링해서 이런 저런 방법 찾아서 혼지사 해보려고 했는데 쉽지않네요..
그 밖에 캐시 지우고 재시작, java SDK 설정, 빌드설정 등 여러가지 방법을 해보았는데 잘 안됩니다 ㅠ
두세시간 정도 삽질중인데 도움 좀 주실 수 있을까요..
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
QueryDSL 설정 시 Q
클래스가 제대로 생성되지 않는 문제는 여러 가지 원인에서 발생할 수 있습니다. 주로 Gradle 설정 오류나 QueryDSL에 필요한 플러그인 및 의존성이 잘못 설정될 경우 발생합니다.
문제의 원인을 해결하기 위해 아래 몇 가지를 확인해보시기 바랍니다:
QueryDSL 관련 의존성 추가: annotationProcessor
에 QueryDSL 관련 설정이 잘 들어가 있는지 재차 확인해 주세요. 특히, ‘com.querydsl:querydsl-apt’ 이 부분입니다.
dependencies {
...
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
...
}
Generated Sources 디렉토리 추가: Gradle이 생성한 Q 클래스가 source path에 추가되어있는지 확인해 보세요. build/generated
폴더를 프로젝트의 소스 디렉토리로 설정해야 합니다.
sourceSets {
main {
java {
srcDir 'build/generated/source/apt/main'
}
}
}
Gradle 빌드 툴: IntelliJ 혹은 CLI에서 Gradle을 사용하는 경우, clean build
명령을 한번 실행해 보세요. 이 과정에서 Q 클래스 생성기가 제대로 작동할 수 있습니다.
./gradlew clean build
IDE 설정: IntelliJ에서 “Build, Execution, Deployment” > “Build Tools” > “Gradle” 항목으로 가셔서 “Build and run using” 및 “Run tests using” 옵션이 모두 Gradle로 설정되어 있는지 확인해보세요.
캐시 및 설정 재확인: 이미 언급하신 대로 캐시를 비우는 과정이 포함됩니다. Gradle 캐시나 IntelliJ의 캐시를 무효화하고 다시 시작하는 방법도 확인해보세요.
이 후에도 해결되지 않는다면, 아래 링크들을 참고하시는 것이 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넵 저도 퇴근길이라서요 !
집가서 다시 해보겠습니다 퇴근길에 답변 감사합니다