아래 글은 (http://www.javafaq.nu/java-article1168.html)을 정리해본 글이다. 아무래도 maven쪽으로 방향을 잡는 글인데.. 글쎄..
프로젝트에서 java 빌드 툴로서 ANT 또는 maven을 선택해야 할 때, 두 도구의 차이점을 이해함으로써 많은 도움을 얻을 수 있을 것이다.
개발(자)의 관점에서의 빌드도구
- 생산성 향상
- 진짜 업무에 집중하기
- 문서 산출물을 쉽게 만들기
경영자의 관점에서의 빌드도구
- 개발비용 절감
- 출시 일정 단축
- 즉각적인 상황보고
역사적으로 ANT는 매우 오래된 빌드 도구 이다. 어떤 면에서는 C 나 C++의 make 와 흡사하다. 과거 make를 이용한 개발자들은 그들이 원하는 것이면 무엇이든 처리할 수 있었다. 하지만 ANT는 좀 다르다. make가 Shell 커멘드를 확장한 반면 ANT는 java class를 확장하는 방식이기 때문이다. shell 커멘드를 빌드 스크립트에 포함하는 것이 아닌 xml 기반의 설정파일을 작성하여야 한다. 각 프로젝트에서는 각각의 다른 Build Process를 작성해야 하고 새로운 팀 멤버는 그 빌드 파일을 분석해야 하는 부담이 있다.
반면에 Maven은 빌드 프로세스를 표준화하였고, 프로젝트의 구성을 규정하고, 프로젝트 정보에 대한 산출물 작성을 용이하게 하고 , 타 프로젝트 jar파일의 의존성을 관리하도록 하였다. Maven은 배스트 프렉티스를 권장한다.
Maven은 ANT에 비해서는 다소 유연하지 못한 면이 있다. 하지만, Maven은 ANT의 TASK를 호출할 수 있기 때문에, ANT에서 할 수 있는 모든 작업이 Maven에서 가능하다.
ANT에서 ,Maven으로 전향해서 얻을수 있는 장점은 프로젝트 빌드의 표준화, 명확히 정의된 의존성, 다른 프로젝트와 공유할 수 있는 산출물 컨셉, 보고서 등이다.
Maven과 Ant 비교표
| Maven | ANT |
| 프로젝트에 대한 기술 | 각 프로젝트마다 빌드 스크립트 개발 |
| 기 구현된 goal(taget) 수행 | 프로젝트 특화된 target 수행 |
| 프로젝트 전체 정보를 정의 | 빌드 프로세스만 정의 |
| 빌드 생명주기, 표준화된 디렉토리 레이아웃 | 매우 복잡한 빌드 스크립트 |
| 재사용 가능한 플러그인, 저장소 | 스크립트가 재사용 가능하지 않음 |
| 매우 빠른 속도로 발전하고 있음 | 발전속도가 느려짐 |
Maven은 온라인 저장소에 들어 있는 매우 많은 플러그인 들로 구성되어 있어 매우 유연하다고 할 수 있다.


댓글