[Spring] Maven 동적 환경 구성
Maven Properties
pom.xml 파일에서 maven 프로퍼티를 사용하여 동적인 환경 구성이 가능하다.
프로퍼티에는 아래 5가지 종류가 있다.
1. Maven Project Properties
Maven Project Object Model(pom.xml) 에 정의된 값.
prefix. : project.*
ex) ${project.build.outputDirectory}
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>project</artifactId>
<version>${project.version}</version>
</dependency>
2. Maven Settings Properties
~/.m2/settings.xml 에 정의된 값 사용
prefix : settings.*
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:\Program Files\Java\jdk1.8.0_281 출력된다. -->
4. Java System Properties
System.getProperty() 메소드에서 제공하는 모든 프로퍼티 정보를 참조할 수 있다.
Java System Properties | 설명 |
---|---|
java.version | JRE의 버전 |
java.vendor | JRE의 vendor 정보 |
java.home | JDK 또는 JRE의 설치 디렉토리 |
java.vm.specification.version | JVM SPEC 버전 |
java.vm.specification.name | JVM SPEC 이름 |
os.name | OS 이름 |
os.version | OS 버전 |
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>
Leave a comment