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:
cpRel
mainClass
cpRel
bannedClassifier
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> install
mvn -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.xml
settings.xml
<offline>true</offline>