2014년 2월 24일 월요일

maven profile 설정(3rd party jar파일을 로컬레파지토리에 저장)

집에서 환경 셋팅하는데 자꾸 pom.xml에서 에러가 발생
즉 사용자 임의 jar파일을(3rdParty) 로컬레파지토리에 저장해 불러올때 초기에 로컬레파지토리에 저장하지 않아서 에러가 남
그래서 우선 cmd > pom.xml파일 위치에서 mvn -Pinstall-3rd install을 실행하니 BUILD FAILURE..ㅠ.ㅠ
한시간 삽질해서 알아낸 결과는 아주 간단했다.
우선 pom.xml 파일에 들어가서 현재 로컬에 저장되지 않은 dependency를 주석처리하고 mvn -Pinstall-3rd install하니 성공
그리고 나서 pom.xml파일로 다시 와서 방금 주석했던 파일을 주석 해제..


-------------------------참고----------------------------------------------------------------------------------------------
환경에 따라 설정을 다르게 해야 하는 경우 profile을 이용하면 수정없이 쉽게 사용이 가능하다.
case에 따라 변경되어지는 키값을 설정해 둔다.

<project>
...
<profiles>
<profile>
<id>appserverConfig-dev</id>
<activation>
<property>
<name>env</name>
<value>dev</value>
</property>
<activeByDefault>true</activeByDefault>
</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>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<appserver.home>/path/to/another/dev/appserver2</appserver.home>
</properties>
</profile>
</profiles>
..
</project>


명령
mvn -P[profile id] [phase]
예제
mvn -PappserverConfig-dev test
mvn -Denv=dev-2 integration-test <-- activation property를 이용한 방법
"activeByDefault" 이 값을 true로 하면 명령 실행시 특정 값을 지정하지 않은 경우 true인 id를 실행한다.
참고 링크 : http://maven.apache.org/guides/introduction/introduction-to-profiles.html
프로파일을 통해 개발, 로컬, 운영버전을 각각 패키징하여 처리하고 있습니다.
알아두면 좋은점이 많은거 같습니다.

댓글 없음:

댓글 쓰기