캠핑과 개발


Maven으로 프로젝트를 진행하면서 며칠동안 삽질을 한 결과 그나마 조금 이해가 가기 시작하며 영어의 절심함 또한 뼈저리게 느낀다..
하지만 이만한 고생으로 Maven의 편리함이 조금씩 이해가 가기 시작한다.
xml 설정만으로도 이렇게 좋을 수가 있다니 세상 참 넒다..

메이븐을 통해서 빌드를 하는 과정에서 톰캣과 연동하고 프로젝트에 맞게 빌드하는 과정에서 알게된 빌드 라이프 사이클에 대해서 간단히 정리를 한다..

기본적으로 이클립스로 Run As를 누르면 기본적으로 제공되는 Maven 빌드 라이프 사이클을 볼수가 있다.



상단에 m2라고 적힌 부분이 메이븐 플러그인을 설치하면 볼 수 있는 메뉴들이다.

다 써보진 않았지만 간단한 설명을 하자면 다음과 같다.

assembly:assembly : 배포물(jar) 에 해당 라이브러리도 같이 넣을때 사용
build : 빌드를 실행한다.
build... : 새로운 사용자 빌드를 만든다.
generate-sources : 컴파일 과정에 포함될 소스를 생성한다. 예를 들어,  DB 테이블과 매핑되는 자바 코드를 생성해주는 작업이 이 단계에서 실행된다.
clean : target에 지정된 모든 소스를 삭제한다.
install : 로컬 리포지토리에 패키지를 복사한다.
package : 컴파일 된 코드와 자원 파일들을 jar, war와 같은 배포 형식으로 패키징한다.
               (jar - jar:jar, war - war:war, pom - site:attach-descriptor, ejb - ejb:ejb)
source:jar : 소스를 jar 파일로 패키징 한다.
test : 테스트를 실행한다.
compile : 소스 코드를 컴파일해서 클래스 출력 디렉터리에 클래스를 생성한다 (compiler:compile)
deploy : 생성된 패키지 파일을 원격 리포지토리에 등록하여, 다른 프로젝트에서 사용할 수 있도록 한다. (deploy:deploy)

build...를 이용한 사용자 빌드 추가

사용자가 새로운 임의 빌드를 만들수도 있다 build... 메뉴를 사용하면 되는데 새로운 플러그인인이 추가 될때마다 새로운 goal을 제공하기 때문에 적절하게 만들어서 사용을 하면 된다.


사용법은 위에 창이 뜨면 Name, Goals를 등록해주고 Apply를 적용하여 실행하면 된다.

Name : 사용자가 생성한 build 이름
Goals : 추가할 빌드 명령

예는 아래와 같다.


이름을 빌드1이라고 주고 명령은 다음과 같이 줬다.

compile war:inplace tomcat:stop tomcat:start

이는 예제를 설명하기 위해서 다음과 같은 명령을 준것으로 4가지의 명령을 실행하고 있다.
이렇게 명령을 주기 위해서는 공백을 주고 다른 명령을 주면 된다.
일반적으로 명령어 창에서 주려면 아래와 같이 mvn을 주고 명령을 주지만 이클립스에선 그냥 명령만 주면 된다. 
mvn compile war:war
mvn package


메모..

compile war:war : 컴파일 후 war 파일을 생성한다. target 폴더에  projectName-0.0.1-SNAPSHOT 폴더와 projectName-0.0.1-SNAPSHOT.war가 생긴다. projectName-0.0.1-SNAPSHOT 폴더 안에는 바로 배포할수 있도록 리소스가 들어 있다. 

 compile war:exploded : 컴파일 후 projectName-0.0.1-SNAPSHOT 폴더가 생성이 되었다. 이 폴더안에 모든 배포할수 있게 리소스가 들어 있다.

compile war:inplace : compile war:exploded 와 동일한 기능을 하지만 추가로 src/main/webapp/WEB-INF/clssses, src/main/webapp/WEB-INF/lib 폴더에 컴파일된 class, jar 파일이 포함이 되었다. 








'DEVELOPMENT' 카테고리의 다른 글

Git  (0) 2013.12.30
dxf file format  (0) 2012.08.16
XSLT 빠른 가이드  (0) 2012.01.13
Oracle, MSSQL, MySql 요약 설명서  (0) 2010.05.18
ServerVariables 콜렉션  (0) 2009.03.10