빌드 관리 도구란
프로젝트에서 필요한 xml,properties,jar 파일등을 자동으로 인식하여 빌드해주는 도구
소스 코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱으로 빌드해줌
프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해줌
외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트를 관리해줌
자바의 대표적인 빌드 도구 : Ant, Maven, Gradle
메이븐(Maven)
메이븐(Maven)이란?
자바의 대표적인 관리 도구였던 Ant를 대체하기 위해 개발된것으로 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml파일로 명시하여 관리함. 참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리됨
메이븐(Maven)을 사용하는 이유
- 기존에 사용하던 Ant는 빌드의 기능만 가지고 있음
- 자동으로 라이브러리를 관리해주는 기능이 추가된 Maven을 사용
- 다운 받아 사용하던 라이브러리에 변동 사항이 있으면 자동으로 업데이트 하여 적용됨
Ant | Maven |
XML기반의 빌드 스크립트 | XML기반의 빌드 스크립트 |
자유로운 빌드 단위 지정 | 라이프 사이클 도입 |
간단하고 사용하기 쉬움 | pom.xml로 편하게 Dependency관리 |
대규모 프로젝트에서 복잡해지는 경향이 있음 | |
라이프 사이클이 없음 |
메이븐(Maven)대표 태그 설명
modelVersion: maven의 버전을 의미
groupId: 프로젝트 그룹 id를 뜻하며, 일반적으로 대표하는 사이트 도메인을 역순으로 적어 사용
artifactId: groupId외에 다른 프로젝트와는 구분될 수 있는 프로젝트의 Id를 작성
version: 프로젝트의 버전을 의미하여 개발 단계에 따라 구분하여 작성
name: 프로젝트 이름
description: 해당 프로젝트의 간략한 설명을 작성
properties: 해당 프로젝트에서 의존성을 가지고 사용하는 라이브러리를 정의한느 영역 각 라이브러리마다
<dependency>태그를 사용하여 구분
build: 프로젝트 빌드와 관련된 정보를 설정하는 영역
그래이들(Gradle)
그래들(Gradle)이란?
Groovy스크립트를 활용한 빌드 관리 도구로 안드로이드 프로젝트의 표준 빌드 시스템으로 채택
멀티 프로젝트의 빌드에 최적화 하여 설계됨. Maven에 비해 더 빠른 처리 속도를 가지고 있고(최대 100배정도 차이) Maven에 비해 더 간결한 구성이 가능함(xml파일보다 간결하기 때문).
그래들(Gradle) 대표 용어 설명
repositories: 라이브러리가 저장된 위치 등 설정
mavenCentral: 기본 Maven Repository를 사용하겠다.
dependencies:라이브러리 사용을 위한 의존성 설정
그래들(Gradle) 과 메이븐(Maven) 비교
Gradle에 비해 Maven이 점유율이 더 높음(점차 Gradle 점유율이 오르는중)
Gradle에 비해 Maven의 성능이 떨어지므로 대규포 프로젝트에서 Gradle이 유리함
Maven: pom.xml Gradle:build.gradle
Gradle은 설치 없이 사용 가능하다.(Gradke Wrapper)
'BE > Java' 카테고리의 다른 글
String vs StringBuffer vs StringBuilder (0) | 2022.11.07 |
---|---|
[Java] 자바11의 간단한 설명 (2) | 2022.10.31 |
[Java] 객체 지향 설계 5원칙(SOILD) (0) | 2022.08.31 |
일급 컬렉션 (First Class Collection) 이란? (0) | 2022.07.18 |
자바 제네릭스(generics)란? (0) | 2022.04.24 |