반응형
Maven 소개
메이븐은 아파치 소프트웨어 재단의 최상급 오픈소스 프로젝트이며 원래는 자카르타 터빈(Jakarta Turbine) 프로젝트의 복잡한 빌드 과정을 관리하기 위해 만들어졌다. 현재 버전 2까지 나오면서 메이븐은 단일 팀 프로젝트에 최적화된 빌드 도구에서 대부분의 소프트웨어 개발 시나리오에 꼭 필요한 범용 빌드 관리 시스템까지 다양하게 사용하고 있다.
Maven 설치와 사용
javacan 블로그의 휼륭한 글
Maven Life-cycle
Maven은 빌드과정을 Phases와 Goal로 life-cyle을 구성한다.
Phases
compile -> test -> package -> install -> deploy
Phases & goal
maven은 플러그인 기반으로 동작하는데 phase에 해당하는 연결된 플러그인의 goal이 실행된다.
process-resources / resources:resources
compile compiler:compile
process-classes
process-test-resources / resources:testResources
test-compile / compiler:testCompile
test / surefire:test
prepare-package
package / jar:jar
Maven의 의존관계
Eclipse 에서 Maven 활용
Maven 주요 goals
Maven profiling
개발 환경마다 설정 정보를 다르게 가져가야 할 경우에, 각각의 개발환경에 적합한 설정 정보를 관리하는 기능으로 profile을 이용한다.
실행 프로파일 설정
<settings>
...
<activeProfiles>
<activeProfile>profile-1</activeProfile>
</activeProfiles>
...
</settings>
<profiles>
<profile>
<id>jboss4.2.2.GA</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<deployPath>
c:/dev/java/jboss-4.2.2.GA/server/default/deploy/${artifactId}.war/
</deployPath>
</properties>
</profile>
<profile>
<id>tomcat5x</id>
<properties>
<deployPath>c:/dev/java/apache-tomcat-5.5.25/webapps/${artifactId}</deployPath>
</properties>
</profile>
</profiles>
<profile>
<id>jboss4.2.2.GA</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<deployPath>
c:/dev/java/jboss-4.2.2.GA/server/default/deploy/${artifactId}.war/
</deployPath>
</properties>
</profile>
<profile>
<id>tomcat5x</id>
<properties>
<deployPath>c:/dev/java/apache-tomcat-5.5.25/webapps/${artifactId}</deployPath>
</properties>
</profile>
</profiles>
<project>
...
<profiles>
<profile>
<id>appserverConfig-dev</id>
<activation>
<property>
<name>env</name>
<value>dev</value>
</property>
</activation>
<properties>
<appserver.home>/path/to/dev/appserver</appserver.home>
</properties>
</profile>
<profile>
<id>appserverConfig-dev-2</id>
<activation>
<property>
<name>env</name>
<value>dev-2</value>
</property>
</activation>
<properties>
<appserver.home>/path/to/another/dev/appserver2</appserver.home>
</properties>
</profile>
</profiles>
..
</project>
프로파일 실행
mvn groupId:artifactId:goal -P profile-1,profile-2
프로파일 중지
mvn groupId:artifactId:goal -P !profile-1,!profile-2
실행환경 저장
실행환경별로 <resouce/>에서 디렉토리별로 클래스, 설정화일을 관리
mvn -Denv=dev integration-test
<resource><directory>src/main/resources-${environment}</directory></resource>
http://maven.apache.org/guides/introduction/introduction-to-profiles.html
참고자료
- 아파치 메이븐 2 시작하기 : http://www.ibm.com/developerworks/kr/library/tutorial/j-mavenv2/index.html
- http://whitebear.tistory.com/60
- Maven Eclipse Plugin 사이트: http://maven.apache.org/plugins/maven-eclipse-plugin/
- Java can : http://javacan.tistory.com/category/Java
- Maven: The Definitive Guide Download "Maven: The Definitive Guide" as a PDF.