maven profiles
개요
메이븐은 프로파일 기능을 이용하여 조건에 따라서 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>
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>
See Also