-
Maven & GradleSpring&Spring Boot Story 2023. 5. 14. 00:33
빌드 관리 도구
- 프로젝트 빌드 과정을 자동화하며, 코드 컴파일, 의존성 관리, 테스트 실행, 패키징 등을 수행한다.
즉, 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라고 할 수 있다. - 우리가 프로젝트에서 작성한 Java 코드와 프로젝트 내에 필요한 각종 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 과정(빌드 자동화 도구)이라 할 수 있다.
- 애플리케이션을 개발하면서, 일반적으로 개발에 필요한 다양한 외부 라이브러리들을 다운로드하고, 해당 라이브러리를 사용하여 개발해야하는 상황이 많다.
이 때, 각 라이브러리들을 번거롭게 모두 다운받을 필요 없이, 빌드 도구 설정 파일에 필요한 라이브러리 종류와 버전들, 종속성 정보를 명시하여 필요한 라이브러리들을 설정 파일을 통해 자동으로 다운로드 해주고 이를 간편히 관리해주는 도구이다.
Maven
- Java용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어졌다.
- XML 기반의 빌드 도구로, 프로젝트 설정(빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계)을 pom.xml 파일에 기술하며, 중앙 저장소에서 필요한 라이브러리를 다운로드 받아 관리한다.
- 외부 저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한 다음, 로컬시스템의 캐시에 모두 저장한다.
- 프로젝트 의존성 관리, 라이브러리 버전 관리, 빌드 환경 설정 등을 손쉽게 수행할 수 있다.
예시 코드

출처 : https://choseongho93.tistory.com/220 Gradle
- 2007년에 처음 개발되었고, 2013년 구글에 의해 안드로이드 프로젝트의 빌드 시스템으로 채택되었다.
- Apache Maven과 Apache Ant에서 볼 수 있는 개념들을 사용하는 대안으로써 나온 프로젝트 빌드 관리 툴이다.(오픈 소스)
- Groovy DSL(Domain-specific-language : 도메인 특화 언어)로 작성된 빌드 도구로, Maven에 비해 간결하고 유연한 설정이 가능하다.
- 빌드 캐시 기능을 제공하여 빌드 시간을 줄일 수 있다.
- 프로젝트의 어느 부분이 업데이트 되었는지 알기 때문에, 빌드에 점진적으로 추가할 수 있다.
- 업데이트가 이미 반영된 빌드의 부분은 더이상 재실행되지 않는다.
- Kotlin DSL도 지원하며, 이를 통해 더욱 간결하고 가독성 높은 빌드 스크립트를 작성할 수 있다.
예시 코드

'Spring&Spring Boot Story' 카테고리의 다른 글
JUnit (0) 2023.05.14 SLF4J (0) 2023.05.13 Controller (0) 2023.05.13 Spring과 Spring Boot의 차이 (0) 2023.01.30 DI(Dependency Injection) (0) 2023.01.30 - 프로젝트 빌드 과정을 자동화하며, 코드 컴파일, 의존성 관리, 테스트 실행, 패키징 등을 수행한다.