Gradle이 뭔지 아직 모른다고?

귤쳥·2021년 10월 24일
0
post-thumbnail

Gradle에 대해 알아보자

안드로이드 프로젝트를 진행하고 스프링부트를 사용하면서 아직도 gradle이 뭔지 모르는 나를 보며 이 정리가 필요할 것 같았다.


Gradle이 뭘까?

  • 이전세대 빌드 툴의 장점들을 모아서 만든 빌드툴(Ant, Maven)

빌드 툴(Build Tool)이란 뭘까?
- 소스코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 어플리케이션으로 자동생성하는 프로그램
- 라이브러리 자동추가 및 관리
- 프로젝트 진행시 라이브러리 버전 자동 동기화

  • JVM기반의 빌드도구
  • 오픈소스 기반의 Build자동화
  • Groovy기반(if, else, for등 로직구현 가능) DSL(특정 영역을 타겟하고 있는 언어)로 작성

cf. 이전세대 빌드 툴

  • Ant
    • 개발자가 자유롭게 빌드 단위를 설정할 수 있다.
    • 빌드 단위간의 의존관계를 자유롭게 설정 할 수 있다
    • 유연성이 높은만큼 이해가 어렵다.
  • Maven
    • CoC(관례에 따른 개발) 전략에 따라 많은 부분이 관례로 정해져 있다.
    • 라이브러리를 직접 다우로드 할 필요가 없다.
    • 특수한 경우에 맞춤화된 로직을 찾기 어렵다.

Gradle Wrapper는 무엇일까?

  • 이미 존재하는 프로젝트를 새로운 환경에 설치할 때 별도의 설치나 과정없이 바로 빌드할 수 있게 하기 위함
  • Java, Gradle설치가 필요하지 않고 버전을 신경쓸 필요도 없음
	project/

	gradlew
	
	gradlew.bat

	gradle/wrapper/

	gradle-wrapper.jar

	gradle-wrapper.properties

	build.gradle

	settings.gradle
  • gradlew파일은 유닉스용 실행 스크립트다.
>gradle build

위 코드는 로컬에 설치된 gradle을 사용한다. 이경우 Java나 Gradle이 설치되어 있어야 하며 프로젝트와 로컬의 버전이 호환되지 않으면 문제가 발생할 수 있다.

> ./gradlew build

위 코드는 wrapper을 사용한다.

  • gradlew.bat 파일은 윈도우용 실행 배치 스크립트다. 윈도우에서 실행 가능한 것을 제외하면 gradlew와 종일
  • gradle-wrapper.jar 파일은 wrapper 파일이다. 이 파일을 사용하여 gradle task를 실행하기 때문에 로컬환경의 영향을 받지 않는다.
  • gradle-wrapper.properties 파일은 gradle wrapper 설정파일이다. 이 파일의 wrapper버전등을 변경하면 task실행시 자동으로 wrapper파일을 로컬캐시에 다운받는다.
  • build.gradle 파일은 의존성이나 플러그인 설정 등을 위한 스크립트 파일이다.
  • settings.gradle 파일은 프로젝트의 구성정보를 기록한다. 어떤 하위 프로젝트들이 어떤 관계로 구성되어 있는지를 기술한다.

참고링크

https://medium.com/@goinhacker/운영-자동화-1-빌드-자동화-by-gradle-7630c0993d09

profile
혼긱 CE의 이제 막 시작하는 코딩

0개의 댓글