컴공생의 다이어리
Maven과 Gradle 본문
스프링 프로젝트를 진행하다보면 빌드 툴을 Maven과 Gradle 중 선택해서 사용할 수 있다. 이때, Maven과 Gradle이 무엇이고 어떤 차이점을 가졌는지 정리해보고자 한다.
Maven
Maven은 프로젝트관리 도구이다. Project object model (POM)개념의 기반으로 만들어져있으며 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리의 종속성 관계들을 pom.xml 파일에 명시한다. 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드/업데이트 한 다음, 로컬시스템의 캐시에 모두 저장한다.
- 아파치 메이븐은 자바용 프로젝트 관리 도구
- 아파치 Ant의 대안으로 만들어짐
- 아파치 라이센스로 배포되는 오픈 소스 소프트웨어
// maven 예시
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
Gradle
Gradle은 Grooby를 이용한 빌드 자동화 시스템이다. Ant와 Maven의 장점을 모아 출시 됐으며 Maven의 후속주자인 만큼 Maven보다 장점이 더 많다. Ant처럼 유연한 범용 빌드 도구, Maven을 사용할 수 있는 변환 가능 컨벤션 프레임 워크 등의 장점이 있다.
- 빌드, 프로젝트 구성/관리, 테스트, 배포 도구
- 안드로이드 앱의 공식 빌드 시스템
- 빌드 속도가 Maven에 비해 10~100배 가량 빠름
- JAVA, C/C++M Python 등을 지원
- 빌트툴인 Ant Builder와 Groovy 스크립트 기반으로 만들어져 기존 Ant의 역할과 배포 스크립트의 기능을 모두 사용 가능
// gradle 예시
providedCompile group: 'org.projectlombok', name: 'lombok', version: '1.18.16'
https://dev-coco.tistory.com/65
https://lejent3.tistory.com/140
https://hyojun123.github.io/2019/04/18/gradleAndMaven/
728x90
'Development > 기타' 카테고리의 다른 글
Clean Code(클린 코드)란? (0) | 2022.02.16 |
---|---|
Web server failed to start. Port 8080 was already in use 에러 발생 (0) | 2022.02.14 |
데이터 포맷(XML, JSON, CSV) (1) | 2022.01.02 |
JSON이란? (0) | 2022.01.01 |
[리액트, react] 화면 크기에 맞게 height 조절하기 (0) | 2021.12.23 |
Comments