Maven pom.xml에서 properties 파일 읽어오기

기본

스프링 프레임워크에서 xml로 설정 파일을 분리시켜 놓긴 했지만, 그래도 데이터베이스 계정이라던지 스프링에 관련 없는 설정 파일도 생기게 마련인데요. 아마 간단하게 properties를 많이 애용하실 겁니다. 저도 그렇구요.

Maven에서 carbon5 플러그인으로 데이터베이스 이력관리를 하다보니 pom.xml에도 jdbc 접속 계정이나  driver 정보가 필요하게 되는데요. 이 정보는 스프링 프레임워크에서 DataSource를 초기화 하는데 한 번 더 쓰이게 됩니다.

그래서 Maven 설정 파일인 pom.xml과 스프링프레임워크 설정 파일인 applicationContext.xml에서 하드코딩 안하고 동시에 사용 가능한 외부 설정 파일이 없을까 하다가 Maven에서 properties 파일을 읽어올 수 있는 플러그인을 찾았습니다.

사용 방법:
먼저 저장소를 추가해 줍니다. 아직 알파 버전인데 사용하는데 문제는 없어보였습니다.

<repositories>
	<repository>
		<id>Codehaus Snapshots</id>
		<url>http://nexus.codehaus.org/snapshots/</url>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
		<releases>
			<enabled>false</enabled>
		</releases>
	</repository>
</repositories>
<pluginRepositories>
	<pluginRepository>
		<id>Codehaus Snapshots</id>
			<url>http://nexus.codehaus.org/snapshots/</url>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
		<releases>
			<enabled>true</enabled>
		</releases>
	</pluginRepository>
</pluginRepositories>
<plugins>
	<plugin>
		<groupId>org.codehaus.mojo</groupId>
		<artifactId>properties-maven-plugin</artifactId>
		<version>1.0-alpha-2</version>
		<executions>
			<execution>
				<phase>initialize</phase>
				<goals>
					<goal>read-project-properties</goal>
				</goals>
				<configuration>
					<files>
						<file>src/mavenpilot/config/jdbc.properties</file>
					</files>
				</configuration>
			</execution>
		</executions>
	</plugin>
</plugins>

이렇게 사용하시면 됩니다. properties를 읽어오는거 외에 쓰기 기능과 프로필 지원 기능도 있습니다.

ps. carbon5 플러그인을 사용해서 새로운 스키마를 만들 때 db-migration:new 해서 만들게 되는데 이때, properties를 못읽어와서 예외가 발생할 수 있습니다.
그래서 properties:read-project-properties db-migration:new 식으로 properties를 읽는 골을 먼저 실행하셔야 합니다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중