Table of Contents
What is a Profile?
A Maven profile is a way to customize the build process based on different environments, conditions, or user-defined criteria. Profiles allow you to specify alternate configurations and settings that can be activated under certain circumstances, such as different operating systems, Java versions, or user-defined properties.
Activating a Profile
You can activate a profile by using -P
followed by the profile name, after your maven command, as follows:
mvn clean install -P MY_PROFILE_NAME
Available Profiles
HAPI-FHIR has various profiles which change the build process. This page enumerates them and explains their purpose.
FASTINSTALL
The FASTINSTALL
profile is meant to quickly get a local build installed. It does the following:
- Disables unit tests
- Disables integration tests
- Disables code coverage
CI
The CI
profile is for running in a Continuous Integration Environment. It does the following:
- Enables the
animal-sniffer-maven-plugin
for various submodules. - Enables the
maven-enforcer-plugin
to run various rules - Heavily modifies the surefire jvm args to improve performance in a CI environment.
DIST
The DIST
profile is for building final release jars. It does the following:
- Enables the
maven-assembly-plugin
to build the HFQL JDBC Driver jar - Enables the
maven-javadoc-plugin
to build release documentation. - Enables the
maven-source-plugin
to bundle the source files into a jar. - Enables the
license-maven-plugin
to update license headers.
CHECKSTYLE
The CHECKSTYLE
profile runs the configured checkstyle rules to ensure new code conforms to existing code standards. It does the following:
- Enables the
maven-checkstyle-plugin
JACOCO
The JACOCO
profile is for code coverage. It does the following:
- Enables the
jacoco-maven-plugin