반응형
Ant ( Apache Ant )
ANT : Another Neat Tool ( 또 다른 균형잡힌 도구? )
자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구
자바 프로젝트들을 빌드하는데 표준으로 사용된다.
빌드를 위한 환경구성을 XML 파일을 사용한다. ( 기본적인 빌드 파일명 : build.xml )
Maven
공식 문서 : http://maven.apache.org/what-is-maven.html
공식문서를 번역하여 정리하기로 하였다.Maven : 이디시어(유대어의 일종)에서 비롯된 말로써, 지식 축적기 라는 의미이다.
Maven 의 기능
1. 쉬운 빌드 프로세스 ( Making the build process easy )
- Maven은 빌드 프로세스의 근본적인 메커니즘을 세세히 알지 않아도 되도록 해준다.
2. 일관된 빌드 시스템을 제공 ( Providing a uniform build system )
- Maven은 Maven을 사용하는 모든 프로젝트들에서 공유하는 일련의 플러그인들과 POM(Project Object Model)을 사용하여 프로젝트를 빌드 할 수 있해줌으로써 균일한 빌드 시스템을 제공한다.
- 하나의 Maven 프로젝트가 어떻게 빌드되는지 익숙해지면 모든 Maven 프로젝트의 빌드 방법을 자동으로 알게 된다. 따라서 많은 프로젝트들을 탐색할 때 엄청난 시간을 절약할 수 있다.
3. 우수한 프로젝트 정보 제공 ( Providing quality project information )
- Maven은 많은 유용한 프로젝트 정보를 제공한다. 프로젝트 정보는 POM 일부분에서 가져오고 프로젝트 소스에서 일부분 생성된다.
- 예를 들어 Maven이 제공할 수 있는 정보는 다음과 같다.
- 소스 컨트롤에서 직접 생성한 변경 로그 문서 ( Change log document created directly from source control )
- 상호 참조 소스 ( Cross referenced source )
- 프로젝트가 관리하는 메일링 리스트의 목록 ( List of mailing lists managed by the project )
- 의존성 목록 ( Dependency list )
- 적용 범위를 포함한 단위 테스트 보고서 ( Unit test reports including coverage )
- Maven이 향상됨에 따라 제공되는 정보들도 향상된다. 그리고 그 정보들은 Maven 유저들에게 투명하게 공개할 것이다.
- 다른 제품들도 Maven 플러그인을 제공할 수 있음으로써 POM을 기반으로 하는 Maven의 일부 표준 정보들과 해당 제품의 프로젝트 정보 세트를 허용한다.
4. 모범 사례 개발을 위한 가이드라인 제공 ( Providing guidelines for best practices development )
- Maven은 모범 사례 개발을 위한 최신 원칙들을 모으고 그 방향으로 프로젝트를 쉽게 가이드 하는 것을 목표로 한다.
- 예를 들어, 유닛 테스트의 사양, 실행 그리고 보고는 Maven을 사용하는 일반적인 빌드 사이클의 일부이다.
- 현재 유닛 테스트 모범 사례가 지침으로 사용되었다.
- 테스트 소스 코드를 병렬 소스 트리가 아닌 각각 분리하여 보관
- 테스트를 위치시키고 실행하기 위해 테스트 케이스 명명 규칙을 사용
- 테스트 준비를 위해 빌드를 사용자 정의 하는 대신에 테스트 케이스가 환경을 설정함.
- Maven은 릴리즈와 이슈 관리와 같은 프로젝트 워크플로우를 지원하는 것을 목표로 한다.
- Maven은 프로젝트의 디렉토리 구조를 어떻게 레이아웃 하는지 몇가지 지침을 알려준다. 지침들을 배우면 Maven과 동일한 기본값을 사용하는 다른 프로젝트를 쉽게 탐색 할 수 있다.
5. 새 기능들로 투명한 마이그레이션 허용 ( Allowing transparent migration to new features )
- Maven은 Maven 유저들이 설치를 업데이트 하는 쉬운 방법을 제공하여 Maven 자체로 만들어진 모든 변경 사항을 이용 할 수 있도록 한다.
- 이러한 이유 때문에 제 3자 또는 Maven 자체로부터 새로 만들어지거나 업데이트된 플러그인들을 설치하는 것이 쉽지 않다.
반응형