Skip to content
Tadgh edited this page Jun 16, 2024 · 1 revision

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