빌드도구의 등장
"개발자들이 단순, 반복적으로 실행하는 작업을 자동화함으로써 업무를 효율화할 수 있는 방법이 없을까?"
지원 기능 목록
- 빌드
- 무선화
- 리포팅
- 의존 관계
- 소스 코드 관리
- 릴리즈
- 배포
앤트 <-> 메이븐
메이븐은 메이븐이 접근할 수 있는 저장소를 지원
저장소를 통하여 템플릿 프로젝트인 아키타입(Archetype), 의존관계에 있는 라이브러리, 메이븐 플러그인 기능을 지원
(메이븐만 설치하면 프로젝트 빌드에 필요한 라이브러리, 플러그인을 저장소에서 개발자 PC로 자동 다운로드)
메이븐 설치 및 템플릿 프로젝트 생성
메이븐 설치
- 최신버전 다운(http://maven.apache.org/download.cgi)
- 시스템 환경 변수에 MAVEN_HOME 추가
- 시스템 환경 변수 PATH에 MAVEN_HOME/bin 추가
mvn -version, mvn -v 로 설치확인
메이븐 기반의 템플릿 프로젝트 생성
메이븐은 생성하는 프로젝트의 종류에 따라 기반이 되는 템플릿 프로젝트를 제공 (=> 이 같은 기능을 아키타입(archetype)이라 한다.)
메이븐에서 제공하는 아키타입은 메이븐 중앙 저장소에서 관리한다.
=> 메이븐 아키타입을 이용하여 jar 프로젝트를 생성하는 명령어
mvn archetype:generate -DgroupId=net.sunghyun -DartifactId=myfist -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
groupId가 기본 패키지로 생성되며 (일반적으로 프로젝트의 도메인명을 사용), artifactId는 프로젝트이름을 사용한다.
groupId와 artifactId는 개발자가 임의로 변경할 수 있으며 메이븐 빌드 툴에서 프로젝트를 구별하는 용도로 사용하는 고유값이다.
메이븐 기본 명령어
MAVEN_HONE/bin 안에 있는 mvn을 활용한다.
mvn [options] [<goal(s)>] [<phase(s)>]
메이븐 명령은 옵션(option), 골(goal), 페이즈(phase) 조합으로 실행할 수 있다.
옵션은 메이븐 설정 파일(pom.xml)이 없는 곳에서도 실행할 수 있으며, 골과 페이즈는 메이븐 기반 프로젝트의 디렉토리에서 실행할 수 있다.
메이븐 빌드 실행에는 페이즈(phase)와 골(goal) 개념이 있다.
메이븐은 페이즈와 골을 이용하여 빌드를 실행할 수 있으며, 빌드를 실행할 때 여러 개의 페이즈와 골을 실행할 수 있다.
mvn clean test : clean 과 test 페이즈 실행
mvn clean compiler:compile : clean 페이즈를 실행하고, comipler 플러그인의 comiple 골을 실행한다.
템플릿 프로젝트 생성
mvn archetype:generate -DarchetypeCatalog=internal
메이븐에서는 여러 개의 아키타입을 제공(jar, war 패키징) 위와 명령어는 메이븐에서 제공하는 기본적은 58개의 아키타입 목록을 보여준다.
mvn archetype:generate 명령을 실행하면 대화 모드(interactive mode)로 템플릿 프로젝트를 생성할 수 있음
archetype을 maven-archetype-webapp을 선택하면 war형태로 패키징 할 수 있는 구조로 프로젝트가 생성된다.
'프로그래밍 노트 > 빌드도구' 카테고리의 다른 글
[Maven] 메이븐 설정 파일 (pom.xml) (0) | 2019.03.25 |
---|---|
[Maven] 메이븐 설정 파일 (settings.xml) (0) | 2019.03.25 |
[Maven] 메이븐(Maven) 생명주기 (0) | 2018.07.27 |
[Maven] 메이븐(Maven) 기본 Properties(설정파일) (0) | 2018.07.27 |
[Maven] 메이븐(maven) 의존성 관리 및 저장소의 이해 (0) | 2018.07.02 |