반응형

Maven 소개

메이븐은 아파치 소프트웨어 재단의 최상급 오픈소스 프로젝트이며 원래는 자카르타 터빈(Jakarta Turbine) 프로젝트의 복잡한 빌드 과정을 관리하기 위해 만들어졌다.  현재 버전 2까지 나오면서 메이븐은 단일 팀 프로젝트에 최적화된 빌드 도구에서 대부분의 소프트웨어 개발 시나리오에 꼭 필요한 범용 빌드 관리 시스템까지 다양하게 사용하고 있다.


사용자 삽입 이미지http://whitebear.tistory.com/60

Maven 설치와 사용

javacan 블로그의 휼륭한 글

Maven 기초 사용법

maven 기반 archetype 생성 예제

maven local repository 변경

 

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의 의존관계

Maven 의존 관계 라이브러리 이용

 

Eclipse 에서 Maven 활용

 

Maven 주요 goals

apache maven eclipse plugin

Maven Jetty Plugin

 

 

Maven profiling

개발 환경마다 설정 정보를 다르게 가져가야 할 경우에, 각각의 개발환경에 적합한 설정 정보를 관리하는 기능으로 profile을 이용한다.

실행 프로파일 설정
  1.           <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>

          <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/>에서 디렉토리별로 클래스, 설정화일을 관리
          
           
          
  1.           mvn -Denv=dev integration-test
    <resource><directory>src/main/resources-${environment}</directory></resource>

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

참고자료
Posted by 1010