본문 바로가기

[검색] 공부하기/Error

execution failed for task ':compilequerydsl'.

728x90
원인
querydsl 을 사용할 때는 Spring boot 버전과 호환여부를 확인해서 build.gradle 설정을 해주어야 한다. 버전이 맞지 않아서 생기는 오류이다. 

 

해결방법
본인이 쓰는 버전을 검색해서 설정을 해주자. 

3.1.2 스프링 부트는 아래와 같이 설정 


plugins {
    id 'java'
    id 'war'
    id 'org.springframework.boot' version '3.1.2'
    id 'io.spring.dependency-management' version '1.1.2'
    // querydsl settings 1
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}

group = 'org.zerock'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '17'
}

configurations {
    compileOnly {
       extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // JDBC 는 maven 에서 검색해서 찾아온다.
    // https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
    implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.1.4'

    // querydsl settings 2
    implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
    annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}

tasks.named('test') {
    useJUnitPlatform()
}

// Querydsl 설정부
def generated = 'src/main/generated'

querydsl {
    jpa = true
    querydslSourcesDir = generated
}
sourceSets {
    main.java.srcDir generated
}

// complieQuerydsl Task에 clean 동작 추가
tasks.compileQuerydsl.dependsOn(clean);

compileQuerydsl{
    options.annotationProcessorPath = configurations.querydsl
}

configurations {
    compileOnly {
       extendsFrom annotationProcessor
    }
    querydsl.extendsFrom compileClasspath
}

 



Calendar
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Visits
Today
Yesterday