maven profiles – 개발/운영 환경별 빌드

■ 개발 환경별로 spring설정 파일을 달리하기 위한 profile설정을 정리한다. 로컬에서 개발하기 위한 local과 개발 서버에서 검증하기 위한 dev을 설정한다. maven.test.skip는 빌드시에 junit테스트 여부를 지정하고 activeByDefault는 profile 옵션을 지정하지 않았을 경우에 기본 빌드 옵션을 지정한다.

<project>
...
<profiles>
	<profile>
		<id>local</id>
		<properties>
			<maven.test.skip>false</maven.test.skip>
			<deploy.phase>local</deploy.phase>
		</properties>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
	</profile>
	
	<profile>
		<id>dev</id>
		<properties>
			<maven.test.skip>false</maven.test.skip>
			<deploy.phase>dev</deploy.phase>
		</properties>
	</profile>
</profiles>
...
</project>

 

■ resource설정 부분에는 아래 4가지 resource설정부분이 있는데 첫번째는 java source관련 설정, 주석 처리한 2번째는 기본 pom.xml 설정인데 주석처리를 하지 않으면 전체 resource가 target에 복사된다. 필히 주석처리를 하여야 한다. 3번째는 빌드 환경별(local/dev) 설정을 분리했고 4번째는 빌드환경별 속성정보를 분리했다.

<build>
...
<resources>
	<resource>
		<directory>src/main/java</directory>
		<includes>
			<include>**/*.xml</include>
		</includes>
	</resource>
	<!--
	<resource>
		<directory>src/main/resources</directory>
		<includes>
			<include>**/*.xml</include>
			<include>**/*.properties</include>
			<include>**/*.setting</include>
		</includes>
	</resource>
	-->
	<resource>
		<directory>src/main/resources/${deploy.phase}</directory>
		<includes>
			<include>**/*.xml</include>
			<include>**/*.properties</include>
			<include>**/*.setting</include>
		</includes>
	</resource>
	<resource>
		<directory>src/main/resources/properties/${deploy.phase}</directory>
		<includes>
			<include>**/*.properties</include>
		</includes>
	</resource>
</resources>
...
</build>

 

■ 이클립스의 파일 구조 정보는 아래와 같다.
111

■ 개발환경별 빌드를 하기 위한 maven 설정 옵션은 -P local 처럼 아래와 같이 이클립스에서 변경 후 실행하면 된다.
222

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다