-
자바 빌드 툴Java/Basics 2019. 5. 21. 09:48
■컴파일이란?
- 하나의 소스파일(사람이 다루기 편한 파일)을 바이트 코드 파일(컴퓨터가 다룰 수 있는
파일)로 번역하는 작업
■빌드란?
- 전처리, 전체 소스 컴파일, 링크, 각종 파일 패키징, 테스트, api문서 생성, 배포 등을
수행하여 프로젝트가 서비스 가능한 하나의 산출물로 종합하는 작업.
■빌드 자동화
- ant, maven, gradle 등의 빌드 툴이 복잡한 빌드 과정을 도와준다.
■apache ant(Another Neat Tool)
- 자바로 구현되어 자바 프로젝트 빌드에 최적화되어 있다.
- build.xml라는 빌드 스크립트를 작성하여 빌드를 자동화.
- 유연한 스크립트 작성 방식이 때로 비효율적인 경우가 생겼고
라이브러리 의존성의 필요성이 대두되어 maven이라는 새로운 빌드 툴이 탄생.
■apache maven
- ant의 후속 툴로써, 프로젝트를 빌드 방법을 표준화.
- ant에 비해 자유도가 낮고 표준화 문법에 대한 이해가 필요하다.
- 빌드 자동화 밖에도 많은 기능 추가(특히 중앙 저장소를 통한 자동 의존성 관리)
- 라이브러리 개발자가 직접 중앙 저장소에 라이브러리 업로드(유료 의존성도 있남??)
- DI/IOC 개념을 빌드 도구에 적용.
- pom.xml을 작성하여 아파치 재단에서 운영하는 중앙 저장소로부터 의존성을 주입받음.
(새로운 저장소 생성도 가능)
- 필요한 의존성이 다른 의존성을 필요로 할 경우, 필요한 모든 의존성 자동 주입
- 자동으로 주입되는 라이브러리를 제외시킬 수도 있음
- 하지만 느린 빌드 속도의 불편함과 빌드라는 동적인 요소를 정적인 xml에 담는 한계로
인해 gradle이라는 새로운 빌드 툴이 등장
■gradle
- maven의 후속 툴로써, ant의 장점인 유연성과 maven의 특징인 표준화를
모두 흡수
- Android OS의 빌드 도구로 채택되기도 함
- 자바와 비슷한 그루비 문법을 사용하여 빌드 내용을 간결하고 동적으로 구성
https://www.slipp.net/wiki/pages/viewpage.action?pageId=4489306
https://hottteokbokki.tistory.com/entry/ANT
https://dololak.tistory.com/671
'Java > Basics' 카테고리의 다른 글
직렬화 vs 역직렬화 (0) 2019.06.14 Java의 날짜와 시간 API (0) 2019.06.06 자바 메모리 구조(Runtime Data Area) (2) 2019.05.16 String compare (0) 2019.04.09 Object class (0) 2019.04.06 댓글