[검색] 공부하기/Error
execution failed for task ':compilequerydsl'.
Ben의 프로그램
2023. 8. 19. 01:02
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 }