Java POM for easy POM definition and inheritance.
Have a look at Available Profiles to see what it can do.
[TOC]
Install the POM
$ mvn -P library install
# Check for Maven Plugin updates
$ mvn versions:display-plugin-updates
# Check for Maven Dependency updates
$ mvn versions:display-dependency-updates
Once this Parent POM is inside the Maven local repository or a Maven Registry, child projects can inherit it.
Add this to their pom.xml file:
<parent>
    <groupId>io.github.cardin</groupId>
    <artifactId>parent-pom</artifactId>
    <version>...</version>
</parent>
There are several configuration values in the <properties> section, 
feel free to overwrite as necessary by redefining it.
Example:
<properties>
    <property>
        <maven.compiler.source>17</maven.compiler.source>
    </property>
</properties>
Child projects can also utilise profiles defined by the Parent POM.
mvn <goal>
Required Properties:
<cpRel><mainClass>Purpose:
cpRelmainClasscpRelbannedClassifier
    library profilemvn -P library <goal>
Meant for non-executable JARs.
It has the same behavior as the default profile, except it:
Purpose:
cpRel propertymainClass (i.e., not executable)uber profileMeant for compiling a standalone JAR with all dependencies embedded
It has the same behavior as the default profile, except it:
Required Properties:
<mainClass>Purpose:
cpRel propertyAfter you’ve inherited this POM and built a Java app, sometimes you want to deploy within an offline environment.
git clone <url> <localDir>-D"maven.repo.local"=<dir>
    mvn -Dmaven.repo.local=<dir> installmvn -D"maven.repo.local"=<dir> instead if you’re on Windows<dir> is where you define your temporary Maven local repository~/.m2-Dmaven.repo.local=<dir><localRepository> in Maven settings.xmlsettings.xml
    <offline>true</offline>