Maven -> Gradle 변경
Maven에서 Gradle로 바꾼 이유
기존 회사 프로젝트 빌드 관리 도구가 Maven인데, 빌드 과정 중에 많은 시간이 소요되어, (5분 이상) 급한 상황에서 수정 후 배포까지 신속하게 대응되지 않았다. 그래서 빌드 관리 도구를 Gradle로 바꾸기로 결정했다. Gradle이 나온지 얼마 되지 않은것도 아니며, 아직까지 많은 프로젝트들이 Maven을 쓰고 있지만 Gradle로 넘어가는 비율이 점점 늘어나고 있는 추세이다.
Gradle 설치
다운로드 페이지에서 원하는 버전을 다운로드 받고, 임의의 경로에 압축을 풀어준다.
EX) C:\gradle-6.8.3 or C:\Gradle\gradle-6.8.3
환경 변수 설정
JDK 설치 시 환경변수가 필요하듯이, Gradle도 동일하다.
[시스템 속성] -> [환경 변수]
1. 시스템 변수
- 변수 이름 : GRADLE_HOME
- 변수 값 : GRADLE 압축해제 한 경로 EX) C:\gradle-6.8.3
- 사용자 변수
- 변수 이름 : Path
- 변수 값 : %GRADLE_HOME%\bin
Gradle 설치 확인
cmd에서 gradle -version 입력 후
사진과 같이 설치한 버전이 표시되면 이상없이 설치 완료!
Gradle 초기화 및 설정
Gradle을 사용가능한 상태로 변경해야한다.
cmd에서 pom.xml이 있는 폴더(프로젝트 폴더)까지 이동 후 gradle init --type pom를 입력해 gradle 초기화 및 유형을 지정한다. 이후 .gradle, setting.gradle, build.gradle 등의 파일이 생성된다.
설정 파일들이 생성된 후 반드시 Gradle로 Import 해야되는데,
Intellij의 경우 하단에 Gradle Project로 Import 여부를 묻는 팝업창이 생성되고 Gradle로 Import 해야한다.
build.gradle 수정
사내 프로젝트는 웹 어플리케이션이므로 JAR 대신 WAR를 생성해야한다.
plugins {
id 'java'
id 'maven-publish'
id 'war' // 배포 시 jar 대신 war를 생성한다
}
repositories {
mavenCentral() // 중앙 저장소 이용할 경우 MavenLocal() 대신 MavenCentral()
maven {
url = uri('https://repo.maven.apache.org/maven2/')
}
}
- build에서 bootWar 또는 bootJar가 없을 때
plugins {
id 'java'
id 'maven-publish'
id 'war'
id 'org.springframework.boot' version '2.X.X.RELEASE' // 추가하면 bootWar 생김
}
build.gradle을 수정했는데도 tasks에 bootWar를 찾을 수 없는 문제가 생겼다.
구글링 결과 plugins에 'org.springframework.boot' version '2.X.X.RELEASE'를 추가하고
Gradle Project를 새로고침했더니 LifeCycle - tasks에 bootJar 또는 bootWar가 만들어진다.
Maven vs Gradle 속도 비교
Gradle이 Maven보다 최대 100배 빠르다 말은 있었지만, 사실 직접 테스트해보는게
제일 체감이 크기 때문에 사내 프로젝트로 Maven과 Gradle을 비교해 보았다.
clean -> build (test 포함)
- Maven : 2분 10초
- Gradle : 약 1분
clean -> build (cache 활성화)
- Maven : 1분 40초
- Gradle : 15초
WAR 파일 생성
- Maven : 5분
- Gradle : 30초
지금까지 Maven 에서 Gradle로 변경하는 과정을 살펴보았다. 처음엔 Gradle의 성능에 대해 의문을 가졌지만, 테스트를 해보니 Maven보다 매우 뛰어난 성능이었고, 문법또한 매우 편리했다. Maven에서 Gradle로 넘어가는 과정이 어렵지 않았다는 점도 만족스러웠다.
Author And Source
이 문제에 관하여(Maven -> Gradle 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@big-choi/Java-Maven-Gradle-변환저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)