[Spring Boot] Maven -> Gradle로 변환하기 (Window)

심삼진·2023년 5월 2일
0

Spring

목록 보기
12/12
post-thumbnail

기존에 JPA를 사용하여 만들었던 maven 프로젝트를 gradle로 바꾸기로 했습니다.

lombok, querydsl 관련 에러가 나서 같이 다뤄보려고 합니다 !!!


1. https://gradle.org/releases/

Gradle 공식홈페이지에서 원하는 버전을 다운받습니다.

저는 binary-only 로 다운받았습니다.



2. 환경변수 설정

JDK와 동일하게 Gradle도 환경변수 설정을 해야합니다.

[시스템 속성] -> [환경 변수]

  1. 시스템 변수
    • 변수 이름 : GRADLE_HOME
    • 변수 값 : GRADLE 압축해제 한 경로 예) C:\gradle-6.8.3
  2. 사용자 변수
    • 변수 이름 : Path
    • 변수 값 : %GRADLE_HOME%\bin



3. cmd에 gradle -v 쳐서 Gradle 설정 확인하기

위와 같이 나온다면 정상적으로 Gradle이 설정완료가 된 겁니다.



4. pom.xml이 위치해있는 원하는 프로젝트로 경로 이동 후, gradle init --type pom 쳐서 Gradle init 해주기

gradle init --type pom 을 치면

Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2]

빌드에 사용할 DSL을 선택하라는 질문이 나옵니다.

기본으로 groovy로 선택되어서 groovy로 진행했습니다. (Enter 누르기)


Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no)

새로운 API 를 사용해서 build 를 생성하겠냐는 질문에 기본 값(no)을 선택해 줍니다.



5. Spring boot build.gradle에서 Querydsl, lombok 다시 설정하기

인텔리제이에서 프로젝트를 열었을 때 gradle 파일이 들어갔습니다. (저는 pom.xml을 지웠습니다.)

하지만 gradle 파일이 들어갔다고 해서 바로 실행되지 않았습니다.


  • Querydsl 설정하기

plugins

/*
 * This file was generated by the Gradle 'init' task.
 */

plugins {
    id 'java'
    id 'maven-publish'
    // querydsl plugins 추가
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}

dependencies

dependencies {
    implementation 'com.querydsl:querydsl-jpa:5.0.0'
    implementation 'com.querydsl:querydsl-apt:5.0.0'
}

추가 설정

test {
    useJUnitPlatform()
}

/*
 * queryDSL 설정 추가
 */
// querydsl에서 사용할 경로 설정
def querydslDir = "$buildDir/generated/querydsl"
// JPA 사용 여부와 사용할 경로를 설정
querydsl {
    jpa = true
    querydslSourcesDir = querydslDir
}
// build 시 사용할 sourceSet 추가
sourceSets {
    main.java.srcDir querydslDir
}
// querydsl 컴파일시 사용할 옵션 설정
compileQuerydsl{
    options.annotationProcessorPath = configurations.querydsl
}
// querydsl 이 compileClassPath 를 상속하도록 설정
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
    querydsl.extendsFrom compileClasspath
}

다 설정한 후 마지막으로 Gradle을 ReImport 해줍니다.

ReImport 해준 후 compileQuerydsl을 더블클릭해주면 Qdomain이 생깁니다.

업로드중..



  • lombok 설정하기

저는 기존에 lombok dependency가 있었음에도 불구하고 lombok이 인식이 안되어 에러가 났습니다.

dependencies {
    annotationProcessor 'org.projectlombok:lombok:1.18.22'
}

dependencies에 annotationProcessor을 넣으니 해결되었습니다.



번외로, repository에서 @Query의 jpql에 쓰이는 변수들을 @Param으로 바인딩 해줬습니다.





Reference
https://www.inflearn.com/questions/367372
https://data-make.tistory.com/728
https://shanepark.tistory.com/360

profile
주니어 백엔드 개발자

0개의 댓글