diff --git a/README.md b/README.md
index 97512bd..5ea55c4 100644
--- a/README.md
+++ b/README.md
@@ -2,12 +2,15 @@
Example Maven Project for a JavaFX Application.
+**Update**: Added profile fatjar
+
**Update**: Added reporting to create a site (html documentation of project)
**Update**: Java 21 is now fully supported
This projects includes multiple plugins:
-- Build of an App-Image using JPackage
+- Build of an App-Image using JPackage (Profile: image)
+- Build of an fat jar (Profile: fatjar)
- Use of Maven Wrapper
- Static code analysis with PMD and Spotbugs
- Check of dependency updates during build
diff --git a/documentation/de/CheckUpdates.md b/documentation/de/CheckUpdates.md
new file mode 100644
index 0000000..0555094
--- /dev/null
+++ b/documentation/de/CheckUpdates.md
@@ -0,0 +1,103 @@
+# Überprüfung auf Updates
+
+Eine regelmäßige Überprüfung auf Updates von Plugins und Dependencies ist aus mehreren Gründen essenziell für die
+Softwareentwicklung. Erstens garantiert sie Sicherheit, indem sie sicherstellt, dass alle verwendeten Komponenten auf
+dem neuesten Stand sind und bekannte Sicherheitslücken geschlossen werden. Zweitens verbessert sie die Leistung und
+Stabilität der Software, da Updates oft Optimierungen und Fehlerbehebungen enthalten. Drittens ermöglicht die
+Aktualisierung den Zugang zu neuen Funktionen und Technologien, was die Entwicklung effizienter und zukunftssicher
+macht. Durch das regelmäßige Aktualisieren wird zudem die Kompatibilität mit anderen Tools und Systemen sichergestellt,
+was die Integration und Wartung vereinfacht.
+
+## Codehaus Version Plugin
+
+Das Codehaus Versions Maven Plugin ist ein nützliches Werkzeug in der Softwareentwicklung, da es überprüft, ob neuere
+Versionen von Plugins oder Dependencies verfügbar sind. Es hilft Entwicklern, ihre Projekte auf dem neuesten Stand zu
+halten, indem es automatisch nach Updates sucht und Vorschläge für mögliche Upgrades macht. Diese Funktionalität ist
+besonders wichtig, um sicherzustellen, dass die verwendeten Komponenten aktuell sind und um von den neuesten
+Sicherheitspatches, Fehlerbehebungen und Leistungsverbesserungen zu profitieren. Das Plugin bietet eine einfache und
+effiziente Möglichkeit, die Softwarewartung zu optimieren und die Softwarequalität zu verbessern.
+
+## Einbindung in das Projekt
+
+Das Plugin ist sehr einfach in ein Projekt einbindbar:
+```xml
+
+ org.codehaus.mojo
+ versions-maven-plugin
+ ${codehaus.version.plugin}
+
+
+ validate
+
+ display-dependency-updates
+ display-plugin-updates
+ display-property-updates
+
+
+
+
+```
+
+Wichtig ist, dass die Ziele sowohl für Abhängigkeiten, Plugins als auch Properties ausgeführt wird, damit kein Update
+übersehen wird.
+
+## Probleme
+
+Die Verfügbarkeit von Updates für Plugins und Dependencies in einem Maven-Projekt kann teilweise von der verwendeten
+Version von Maven selbst abhängen. Neuere Versionen von Maven unterstützen oft aktuellere Plugins und Dependencies,
+die verbesserte Funktionen und Sicherheitsupdates bieten können. Daher ist es wichtig, sicherzustellen, dass ein
+Projekt mit einer spezifischen, minimal erforderlichen Maven-Version betrieben wird.
+
+Um dies zu gewährleisten, kann das Maven Enforcer Plugin eingesetzt werden. Dieses Plugin erlaubt es, bestimmte Regeln
+innerhalb der Build-Umgebung durchzusetzen, darunter auch die Anforderung einer minimalen Maven-Version. Durch die
+Konfiguration des Maven Enforcer Plugins im Build-Prozess wird sichergestellt, dass der Build nur dann erfolgreich
+durchgeführt wird, wenn die verwendete Maven-Version der definierten Mindestanforderung entspricht. Dies hilft,
+Inkonsistenzen und potenzielle Fehler aufgrund von Versionskonflikten zu vermeiden und fördert die Stabilität und
+Sicherheit des Projekts.
+
+Einbindung des Maven Enforcer Plugins:
+```xml
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ ${maven.enforcer.plugin}
+
+
+ enforce-versions
+
+ enforce
+
+
+
+
+ ${required.maven.version}
+
+
+
+
+
+
+```
+
+## Ergebnis
+
+Während des Build-Vorgangens bekommt man eine Ausgabe ähnlich:
+```text
+[INFO] The following version properties are referencing the newest available version:
+[INFO] ${codehaus.version.plugin} ................................... 2.16.2
+[INFO] ${javafx.maven.plugin} ........................................ 0.0.8
+[INFO] The following version property updates are available:
+[INFO] ${javafx.version} ................................. 21.0.3 -> 23-ea+3
+[INFO] ${junit.version} ................................ 5.10.2 -> 5.11.0-M1
+[INFO] ${maven.site.plugin} ......................... 4.0.0-M13 -> 4.0.0-M14
+```
+
+**Hinweis** Das Tool führt keine Bewertung der Updates durch. So zeigt die kopierte Ausgabe drei mögliche
+Aktualisierungen:
+
+- javafx.version könnte auf eine early access Version aktualisiert werden. Das ist etwas, das man sich natürlich gut
+überlegen sollte (und bei JavaFX kann es sinnvoll sein, die Main-Version gleich zur Java Version zu halten).
+- Für JUnit gibt es eine neue Milestone Version. Auch hier kann es Sinn machen, keine Milestone Versionen zu verwenden.
+- Für das Site Version wird bereits auf eine Milestone Version gesetzt. Hier macht das Update dann durchaus Sinn.
+
+**Es wird also deutlich, dass hier eine bewusste Bewertung stattfindet, die vom Plugin nicht geleistet werden kann.**
\ No newline at end of file
diff --git a/documentation/de/ImageCreation.md b/documentation/de/ImageCreation.md
index a4e59b5..a1cf246 100644
--- a/documentation/de/ImageCreation.md
+++ b/documentation/de/ImageCreation.md
@@ -11,25 +11,25 @@ werden kann.
## Aufruf
-Um das Image zu bauen, ist Maven mit dem Profil Image und dem Ziel install zu starten.
+Um das Image zu bauen, ist Maven mit dem Profil image und dem Ziel install zu starten.
Da es teilweise zu Problemen kommt, wenn Dateien überschrieben werden müssen, sollte
als Erstes ein clean durchlaufen.
Dies kann in einem Durchlauf erfolgen:
```shell
-mvnw -PImage clean install
+mvnw -Pimage clean install
```
-## Beschreibung des Image Profils
+## Beschreibung des image Profils
### Das Profil
```xml
- Image
+ image
- Image
+ image
@@ -42,8 +42,8 @@ mvnw -PImage clean install
```
-- Das Profil hat eine Id: Image. Damit ist es möglich, das Profil über -PImage auszuwählen.
-- Durch die activation Property ist es zusätzlich möglich, das Profil auch über ein Define auszuwählen: -DImage
+- Das Profil hat eine Id: image. Damit ist es möglich, das Profil über -Pimage auszuwählen.
+- Durch die activation Property ist es zusätzlich möglich, das Profil auch über ein Define auszuwählen: -Dimage
- In dem Profil selbst sind dann Plugins untergebracht.
### maven-dependency-plugin
diff --git a/documentation/de/_Index.md b/documentation/de/_Index.md
index b1d7c2f..2ad5511 100644
--- a/documentation/de/_Index.md
+++ b/documentation/de/_Index.md
@@ -5,7 +5,7 @@
## Maven Projekt
- [Übersicht über das Maven Projekt](MavenProject.md)
- [Erzeugung eines Images](ImageCreation.md)
-- Überprüfung auf Aktualisierungen
+- [Überprüfung auf Updates](CheckUpdates.md)
## [Statische Codeanalyse](StaticCodeAnalysis.md)
- [PMD](PMD.md)
diff --git a/documentation/en/CheckUpdates.md b/documentation/en/CheckUpdates.md
new file mode 100644
index 0000000..331876d
--- /dev/null
+++ b/documentation/en/CheckUpdates.md
@@ -0,0 +1,75 @@
+# Checking for Updates
+
+Regular updates of plugins and dependencies are crucial for software development for several reasons. First, they
+ensure security by keeping all components up-to-date and closing known vulnerabilities. Second, updates often include
+optimizations and bug fixes, which improve the performance and stability of the software. Third, updating allows access
+to new features and technologies, making development more efficient and future-proof. Regular updates also ensure
+compatibility with other tools and systems, simplifying integration and maintenance.
+
+## Codehaus version plugin
+
+The Codehaus Versions Maven Plugin is a valuable tool in software development, as it checks for newer versions of
+plugins or dependencies. It assists developers in keeping their projects up-to-date by automatically searching for
+updates and suggesting possible upgrades. This functionality is especially important to ensure that the components
+used are current and to benefit from the latest security patches, bug fixes, and performance improvements. The plugin
+offers a simple and efficient way to optimize software maintenance and enhance software quality.
+
+## Inclusion in project
+
+The plugin can easily be added to the maven project:
+```xml
+
+ org.codehaus.mojo
+ versions-maven-plugin
+ ${codehaus.version.plugin}
+
+
+ validate
+
+ display-dependency-updates
+ display-plugin-updates
+ display-property-updates
+
+
+
+
+```
+
+It is important, that we start the goals to display updates for dependencies, plugins and also properties.
+
+## Problems
+
+The availability of updates for plugins and dependencies in a Maven project can sometimes depend on the version of
+Maven being used. Newer versions of Maven often support more current plugins and dependencies, which can offer improved
+features and security updates. Therefore, it is important to ensure that a project is operated with a specific, minimum
+required version of Maven.
+
+To enforce this, the Maven Enforcer Plugin can be utilized. This plugin allows specific rules to be enforced within
+the build environment, including the requirement for a minimum Maven version. By configuring the Maven Enforcer Plugin
+in the build process, it is ensured that the build only proceeds successfully if the Maven version used meets the
+defined minimum requirement. This helps to avoid inconsistencies and potential errors due to version conflicts,
+promoting the stability and security of the project.
+
+Inclusion of the maven enforcer plugin:
+```xml
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ ${maven.enforcer.plugin}
+
+
+ enforce-versions
+
+ enforce
+
+
+
+
+ ${required.maven.version}
+
+
+
+
+
+
+```
\ No newline at end of file
diff --git a/documentation/en/ImageCreation.md b/documentation/en/ImageCreation.md
index 35f53e0..09dfac7 100644
--- a/documentation/en/ImageCreation.md
+++ b/documentation/en/ImageCreation.md
@@ -9,12 +9,12 @@ Creation of an "image": A directory structure with files along with a binary tha
## Invocation
-To build the image, start Maven with the Image profile and the install goal.
+To build the image, start Maven with the image profile and the install goal.
Since there are sometimes problems when files need to be overwritten, a clean should be run first.
This can be done in one run:
```shell
-mvnw -PImage clean install
+mvnw -Pimage clean install
```
## Description of theImage Profile
@@ -23,10 +23,10 @@ mvnw -PImage clean install
```xml
- Image
+ image
- Image
+ image
@@ -39,8 +39,8 @@ mvnw -PImage clean install
```
-- The profile has an ID: Image. This allows the profile to be selected using -PImage.
-- Additionally, the profile can be selected using a define: -DImage
+- The profile has an ID: image. This allows the profile to be selected using -Pimage.
+- Additionally, the profile can be selected using a define: -Dimage
- The profile itself then contains plugins.
### maven-dependency-plugin
diff --git a/documentation/en/_Index.md b/documentation/en/_Index.md
index cfd09a4..02a92cf 100644
--- a/documentation/en/_Index.md
+++ b/documentation/en/_Index.md
@@ -5,7 +5,7 @@
## Maven Project
- [Maven Project Overview](MavenProject.md)
- [Image Creation](ImageCreation.md)
-- Checking of Updates
+- [Checking for Updates](CheckUpdates.md)
## [Static Code Analysis](StaticCodeAnalysis.md)
- [PMD](PMD.md)
diff --git a/pom.xml b/pom.xml
index e3e5102..7103a5e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,7 @@
3.6.3
3.5.0
3.3.1
+ 3.5.3
4.0.0-M14
3.2.5
1.0.0.RC2
@@ -450,5 +451,59 @@
+
+
+ fatjar
+
+
+ fatjar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven.shade.plugin}
+
+
+ package
+
+ shade
+
+
+
+
+ true
+ full
+
+
+
+
+ ${main.class}
+ 1.0
+
+
+
+
+
+ *:*
+
+ META-INF/MANIFEST.MF
+ **/module-info.class
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+
+
+