Maven Profile
Jump to navigation
Jump to search
External
Internal
Overview
A profile is an alternative set of configurations which set or override default values. Profiles allow to customize a build for different environments. Profiles can be defined:
- per project in the pom.xml file
- per-user in ${user.home}/.m2/settings.xml
- global in ${maven.home}/conf/settings.xml
Each profile is identified with an identifier. Profiles customizes the build for different environments (e.g. production or development, different operating systems, different JDK versions, etc.)
An example of profile:
... <profiles> <profile> <id>production</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <debug>false</debug> <optimize>true</optimize> </configuration> </plugin> </plugins> </build> </profile> </profiles> ...
The profile can be activated explicitly on command line with -P:
mvn -Pproduction clear install
A profile can also be triggered through Maven settings, based on environment variables, OS settings, or present or missing files.