개요
메이븐은 프로파일 기능을 이용하여 조건에 따라서 JDK 를 다른 버전으로 build 하거나 특정 환경에 맞게 packaging 등을 할수 있음
사용
Types of profile
- Per Project
- Defined in the POM itself (pom.xml).
- Per User
- Defined in the Maven-settings (%USER_HOME%/.m2/settings.xml).
- Global
- Defined in the global Maven-settings (%M2_HOME%/conf/settings.xml).
- Profile descriptor
- a descriptor located in project basedir (profiles.xml) (unsupported in Maven 3.0: see Maven 3 compatibility notes)
profile 설정
다음과 같은 방법을 통해 profile 설정이 가능
- 실행시 -P 커맨드 옵션을 통해 전달 (Ex: mvn mygoal -P profile-1,profile-2)
- settings.xml 에 기술
profile activation
특정 profile activation 은 activeProfiles section 에서 설정 가능
<settings>
...
<activeProfiles>
<activeProfile>profile-1</activeProfile>
</activeProfiles>
...
</settings>
CODE
activation section 은 특정 조건일때 실행될 profile 을 설정
아래의 pom.xml 은 jdk 가 1.6 일때 jdk16 profile 을 실행
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.sonatype.mavenbook</groupId>
<artifactId>simple</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>simple</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>jdk16</id>
<activation> (1)
<jdk>1.6</jdk>
</activation>
<modules> (2)
<module>simple-script</module>
</modules>
</profile>
</profiles>
</project>
XML
See Also
Ref