Created Build Profiles (markdown)

Tadgh 2024-06-15 19:56:45 -07:00
parent 304041f54b
commit 3b195765b3

51
Build-Profiles.md Normal file

@ -0,0 +1,51 @@
## 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:
```bash
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`