[Spring] Gradle

세상을 바꾸는 개발자·2023년 3월 28일
0

Gradle이란?

아래 Task들을 자동화 시켜주는 그루비 기반의 빌드 도구이다.

  • Compile : Kotlin이나 Java파일을 바이트 코드로 변환해주는 작업
  • Test : 어플리케이션이 제대로 동작할지에 대한 Test(Unit Test, UI Test)를 지원
  • Packaging : 코드를 패키징 해 jar나 war 파일로 만들어 줌
  • Deploy & Run : 만들어진 스프링을 돌려 서버를 실행해주는 것


Gradle의 특징

  • Gradle은 Ant와 Maven이 가진 장점을 모아 만들었다.

  • 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌
    JVM에서 동작하는 스크립트 언어 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다.

    그루비(Groovy) 는 자바 문법과 유사하여 자바 개발자가 쉽게 익힐 수 있는 장점이 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.

  • 심지어 메이븐(Maven)의 pom.xml을 Gradle 용으로 변환할 수도 있으며 Maven의 중앙 저장소도 지원하기 때문에 라이브러리를 모두 그대로 가져다 사용할 수 있다.

Ant

  • XML 기반으로 빌드 스크립트를 작성한다.
  • 자유롭게 빌드 단위를 지정할 수 있다.
  • 간단하고 사용하기 쉽다.
  • 유연하지만 프로젝트가 방대해지는 경우 스크립트 관리나 빌드 과정이 복잡해진다.
  • 생명주기(Lifecycle)을 갖지 않아 각각의 결과물에 대한 의존관계 등을 정의해야 한다.

Maven

  • XML 기반으로 작성한다.
  • 생명주기(Lifecycle)와 프로젝트 객체 모델(POM, Project Object Model)이란 개념이 도입됐다.
  • Ant의 장황한 빌드 스크립트를 개선했다.
  • pom.xml에 필요한 라이브러리를 선언하면 자동으로 해당 프로젝트로 불러와 편리하다.
  • 상대적으로 학습 장벽이 높다.
  • 라이브러리가 서로 의존하는 경우 복잡해질 수 있다.
profile
초심 잃지 않기

0개의 댓글