Gradle vs Maven

최민수·2023년 3월 20일
0

[개발] Java Spring

목록 보기
6/18

스프링 부트를 사용한 qa 게시판 프로젝트를 시작하면서 어떤 사이트에서 이런 글을 봤다.

build.gradle 파일

그레이들(Gradle)이 사용하는 환경 파일이다. 그레이들은 그루비(Groovy)를 기반으로 한 빌드 도구로 Ant, Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 빌드 도구이다. build.gradle 파일에는 프로젝트를 위해 필요한 플러그인과 라이브러리 등을 기술한다.

여기서 말한 단점을 보완하고 장점을 취합하여 가 무슨 단점이고 무슨 장점일까?
지금까지 난 계속 빌드 툴을 Gradle로 선택해서 프로젝트를 진행하고 있는데, Maven 보다 Gradle이 선호되는 이유는 무엇일까?


ChatGPT에게 물어봤다

Tell me why gradle is preferred to maven

Gradle and Maven are both popular build tools for Java projects. While both tools are capable of managing dependencies, building and packaging applications, and running tests, there are some key differences between them.

Here are some reasons why some developers prefer Gradle over Maven:

Gradle is more flexible and customizable than Maven. Gradle build scripts are written in Groovy or Kotlin, which are more expressive and powerful languages than the XML used by Maven. This makes it easier to write complex build logic and custom plugins.

Gradle has better performance than Maven for large builds. Gradle uses a more efficient incremental build system that can reuse outputs from previous builds, reducing build times significantly.

Gradle has better support for multi-project builds than Maven. Gradle's build scripts are designed to handle complex build hierarchies and dependencies between projects, making it easier to manage large codebases.

Gradle has better integration with other tools and systems. Gradle can easily integrate with IDEs, Continuous Integration (CI) servers, and other tools, making it easier to incorporate into existing development workflows.

요약하자면, GPT가 설명하는 장점은 이렇다

  • Gradle은 더 유연하고 커스텀하기 좋은 빌드 툴이다.
    - Gradle sciprt는 코틀린, 그루비 언어로 쓰이는 반면, Maven script는 XML로 쓰인다. 따라서, 빌드 로직이 복잡해지고 커스텀할 플러그인이 많아지면 훨씬 가독성이 좋고 간단하게 작성이 가능하다.

  • Gradle은 large build를 할때 더 좋은 성능을 낸다.
    - 이전의 빌드 결과물로부터 재사용할 수 있는 시스템을 갖추고 있기 때문에 빌드 시간이 훨씬 단축된다.

  • 프로젝트 간 의존관계, 다른 tool들과의 integration이 더 낫다.
    - 빌드 계층구조나 외부 라이브러리와의 의존관계, 외부 툴들과의 버전 맞추기 등의 설정이 훨씬 간단하고 편리하게 되어있다.


그저 단순하게 아, 무조건 Gradle 쓰던데? 하지 말고 쓰는 이유는 제대로 알고 쓰고 싶다.

그러기 위해선 이런 질문들이 나올 때 그냥 넘기지 말고 계속 찾아보는 습관을 기르도록 하자.

참고 사이트: https://wikidocs.net/160947

profile
CS, 개발 공부기록 🌱

0개의 댓글