The informaticspom is used as the parent pom for programming assignments at Fontys Venlo.
The goal of the POM is to have a baseline of dependencies that are needed for most assignments.
These include:
- Test dependencies
- JUnit
- AssertJ
- Mockito
- CodeCoverage with JaCoCo
- Static code analyzer
- CheckStyle
- JavaFX (with the JavaFX profile)
- Testing modular JPMS projects
The pom can be used by defining it as the parent pom
<parent>
<groupId>io.github.fontysvenlo</groupId>
<artifactId>informaticspom</artifactId>
<version>1.4</version>
</parent>
The following properties are available
| Property | Default value | Description |
|---|---|---|
| project.build.sourceEncoding | UTF-8 | Encoding used for source code |
| java.release | 21 | The java version used |
| mockito.core.version | 5.9.0 | The mockito version |
| junit.jupiter.version | 5.10.1 | The JUnit 5 (Jupiter) version |
| assertj.core.version | 3.25.1 | The assertj version |
| jacoco.version | 0.8.11 | The Java Code Coverage version |
| jacocoArgLine | Optional arguments that get passed to JaCoCo | |
| argLine | Optional arguments that get passed to maven surefire | |
| surefire.opens | Optional arguments that get passed to maven surefire plugin to open modules | |
| maven.surefire.version | 3.2.5 | Maven surefire version |
| maven.compiler.release | ${java.release} | The compiler release version used by maven |
| exec.main | The main class that should be set in the JAR by maven compiler |
Default: The default dependencies (no JavaFX and doesn't generate code coverage)
Jacoco: Same as default, but generates the code coverage report.
- mvn verify will fail when the jacoco.threshold.line and jacoco.threshold.branch thresholds aren't met (default: 0, can be overridden via a property)
JavaFX: Includes the JavaFX dependencies
Release: Use to
release new version of the informaticspom
Releasing is as easy as pushing/merging new changes to this repository, when the build passes all the checks it will automatically release a new version on Maven Central.