2014년 2월 26일 수요일

Maven Properties - 동적인 환경구성

Maven Properties

  • pom.xml 파일에서 maven 프로퍼티를 사용하여 동적인 환경 구성이 가능하다.
  • 프로퍼티의 종류에는 project 프로퍼티, settings 프로퍼티, 환경 변수 프로퍼티, Java System 프로퍼티, 사용자 정의 프로퍼티가 있다.

1. Maven Project Properties

  • Maven Project Object Model(pom.xml) 에 정의된 값.
  • prefix. : project.*
        ex) ${project.build.outputDirectory}
      
<dependencies>
  <dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>sibling-project</artifactId>
    <version>${project.version}</version>
  </dependency>
</dependencies> 
 

2. Maven Settings Properties

3. Environment Variable Properties

  • 환경 변수 값을 참조 할 수 있다.
  • prefix : env.*
  • 예제
    • env.PATH : 현재의 PATH 정보
    • env.JAVA_HOME : JDK Home 정보
    • env.HOME : 유닉스/리눅스 사용자 HOME 디렉토리
    • env.M2_HOME : Maven Home 정보
<!-- mvn antrun:run -->
<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <configuration>
    <tasks>
      <echo>The JAVA_HOME var is ${env.JAVA_HOME}</echo>
    </tasks>
  </configuration>
</plugin>

<!--  [echo] The JAVA_HOME var is C:\jdk1.5 출력된다. -->

4. Java System Properties

  • System.getProperty() 메소드에서 제공하는 모든 프로퍼티 정보를 참조할 수 있다.
Java System Properties설명
java.versionJRE의 버전
java.vendorJRE의 vendor 정보
java.homeJDK 또는 JRE의 설치 디렉토리
java.vm.specification.versionJVM SPEC 버전
java.vm.specification.nameJVM SPEC 이름
os.nameOS 이름
os.versionOS 버전
user.home사용자 홈 디렉토리
user.name사용자 이름
user.dir현재 디렉토리

5. User-defined Properties

  • 아래와 같이 직접 정의해서 사용 할 수 있다.
<project>
...
<properties>
  <env>local</env>
  <clover.home>analysis_tools/clover</clover.home>
  <checkstyle.home>analysis_tools/checkstyle</checkstyle.home>
  <pmd.home>analysis_tools/pmd</pmd.home>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>      
</properties>
...
</project>

6. Reference

문서정보

댓글 없음: