이동식 저장소

[Android] gradle vs. gradlew 본문

Secondary/Gradle

[Android] gradle vs. gradlew

해스끼 2022. 9. 23. 11:51

Gradle 빌드를 실행하는 방법에는 여러 가지가 있지만, 공식 문서에서 추천하는 방법은 Gradle Wrapper(이하 wrapper)를 통해 실행하는 것이다. Wrapper는 특정 버전의 Gradle을 실행하는 스크립트로, 시스템에 해당 버전의 Gradle이 없다면 자동으로 설치해 준다. 따라서 개발자가 사용할 버전을 정의하기만 하면 wrapper가 해당 버전을 설치하고, 실행하게 된다.

Wrapper가 꼭 필요한가?

시스템에 프로젝트가 하나만 있다면 상관없겠지만, 여러 프로젝트에서 모두 다른 버전의 Gradle을 사용한다면 어떨까? 귀찮게도 프로젝트마다 일일이 Gradle을 설치해야 한다. 버전을 바꾸고 싶다면 역시 수동으로 설치해야 한다. 이런 귀찮은 일을 wrapper가 대신 해주는 것이다. 사용할 버전만 명시하면 나머지는 wrapper가 알아서 설치할 것이다.

예시

안드로이드 프로젝트에서 wrapper가 어떻게 설정되어 있는지 보자.

``distributionUrl``은 Gradle 배포판의 경로를 지정하는 변수이다. URL 맨 끝에 Gradle 버전이 정의되어 있다. 버전을 바꾸고 싶다면 이 값만 바꾸면 된다.

 

프로젝트 루트 경로에 보면 ``gradlew``와 ``gradlew.bat`` 파일이 있는데, ``gradlew``는 맥과 리눅스용 스크립트이고, ``gradlew.bat``는 윈도우용 스크립트 파일이다. 

정리

  • Gradle은 빌드 시스템이다.
  • Gradlew는 Gradle의 버전을 관리하고, 스크립트를 실행해 주는 wrapper 역할을 한다.
Comments