Add reporting feature and update project documentation

A reporting feature has been added to the project. This involves building HTML documentation, which includes the results of the static code analysis (PMD and SpotBugs). Both 'QuickStart.md' and '_Index.md' files in 'documentation/de' and 'documentation/en' folders have been updated to reflect these changes. Furthermore, the 'README.md' file and Maven POM file ('pom.xml') have also been updated accordingly.
This commit is contained in:
Konrad Neitzel 2024-05-09 22:02:43 +02:00
parent 9713d79d52
commit 7cc1877ca6
6 changed files with 113 additions and 7 deletions

View File

@ -2,6 +2,8 @@
Example Maven Project for a JavaFX Application. Example Maven Project for a JavaFX Application.
**Update**: Added reporting to create a site (html documentation of project)
**Update**: Java 21 is now fully supported **Update**: Java 21 is now fully supported
This projects includes multiple plugins: This projects includes multiple plugins:

View File

@ -27,7 +27,7 @@ aufrufen.
Um die Anwendung zu übersetzen kannst Du aufrufen: Um die Anwendung zu übersetzen kannst Du aufrufen:
```./mvnw package``` ```./mvnw package```
### Bau des Images zur weitergabe ### Bau des Images zur Weitergabe
Um das Image zu bauen, rufst du einfach Maven mit dem Profil Image und dem Um das Image zu bauen, rufst du einfach Maven mit dem Profil Image und dem
Ziel install auf: Ziel install auf:
@ -37,9 +37,21 @@ Ziel install auf:
da dieses Plugin zwingend eine Modulbeschreibung für das Projekt und alle da dieses Plugin zwingend eine Modulbeschreibung für das Projekt und alle
Abhängigkeiten erfordert. Abhängigkeiten erfordert.
### Komplette Übersetzung des Projekts incl. Dokumentation
Mit dem folgenden Befehl lässt sich das ganze Projekt von grundauf neu übersetzen incl.
der Erstellung der HTML Dokumentation des Projektes:
```./mvnw -Dimage clean install site```
- **-Dimage** aktiviert das Profil image, das für den Bau des Application Images zuständig ist
- **clean** Mit dem Ziel clean wird am Anfang alles, was bereits ggf. schon an Übersetzungen vorhanden ist, entfernt wird.
- **install** Durch install wird das ganze Projekt gebaut incl. Unit Tests, statischer Codeanalyse, ...
- **site** Es wird die Dokumentation des Projektes gebaut.
## Ergebnisse der statischen Codeanalyse ## Ergebnisse der statischen Codeanalyse
Die Codeanalyse läuft automatisch beim Bau des Projektes und die Ergebnisse Die Codeanalyse läuft automatisch beim Bau des Projektes und die Ergebnisse
finden sich in: finden sich in:
- ./target/pmd.xml - ./target/pmd.xml
- ./target/spotbugsXml.xml - ./target/spotbugsXml.xml
Wenn die Site gebau wird, dann gibt es html Seiten mit den Ergebnissen von PMD und Spotbugs in der Site.

View File

@ -12,4 +12,5 @@
- [SpotBugs](SpotBugs.md) - [SpotBugs](SpotBugs.md)
## Sonstiges ## Sonstiges
- Reporting
- Lombok - Lombok

View File

@ -33,6 +33,15 @@ To build the image, the profile Image must be used:
**Important** You cannot build an image using the javafx plugin. The javafx plugin requires that you build a modular **Important** You cannot build an image using the javafx plugin. The javafx plugin requires that you build a modular
Java application and all dependencies providing a module description. Java application and all dependencies providing a module description.
### complete build including documentation
To build the complete project from scratch and build all parts possible, you could use the following command:
```./mvnw -Dimage clean install site```
- **-Dimage** activates the profile image that is responsible to build the application image
- **clean** cleans everything of previous builds.
- **install** build the project (compile, build jar file, ...)
- **site** creates the html documentation of the project
## Static code analysis results ## Static code analysis results
The static code analysis is done during the build of the application. The results can be found in The static code analysis is done during the build of the application. The results can be found in

View File

@ -12,4 +12,5 @@
- [SpotBugs](SpotBugs.md) - [SpotBugs](SpotBugs.md)
## Other Topics ## Other Topics
- Reporting
- Lombok - Lombok

93
pom.xml
View File

@ -30,6 +30,9 @@
<mockito.version>5.11.0</mockito.version> <mockito.version>5.11.0</mockito.version>
<!-- Plugin dependencies --> <!-- Plugin dependencies -->
<codehaus.version.plugin>2.16.2</codehaus.version.plugin>
<javafx.maven.plugin>0.0.8</javafx.maven.plugin>
<jpackage.maven.plugin>0.1.5</jpackage.maven.plugin>
<maven.clean.plugin>3.3.2</maven.clean.plugin> <maven.clean.plugin>3.3.2</maven.clean.plugin>
<maven.compiler.plugin>3.13.0</maven.compiler.plugin> <maven.compiler.plugin>3.13.0</maven.compiler.plugin>
<maven.dependency.plugin>3.6.1</maven.dependency.plugin> <maven.dependency.plugin>3.6.1</maven.dependency.plugin>
@ -37,14 +40,13 @@
<maven.enforcer.plugin>3.4.1</maven.enforcer.plugin> <maven.enforcer.plugin>3.4.1</maven.enforcer.plugin>
<maven.install.plugin>3.1.2</maven.install.plugin> <maven.install.plugin>3.1.2</maven.install.plugin>
<maven.jar.plugin>3.4.1</maven.jar.plugin> <maven.jar.plugin>3.4.1</maven.jar.plugin>
<maven.javadoc.plugin>3.6.3</maven.javadoc.plugin>
<maven.project.info.reports.plugin>3.5.0</maven.project.info.reports.plugin>
<maven.resources.plugin>3.3.1</maven.resources.plugin> <maven.resources.plugin>3.3.1</maven.resources.plugin>
<maven.site.plugin>4.0.0-M13</maven.site.plugin> <maven.site.plugin>4.0.0-M14</maven.site.plugin>
<maven.surfire.plugin>3.2.5</maven.surfire.plugin> <maven.surfire.plugin>3.2.5</maven.surfire.plugin>
<moditect.maven.plugin>1.0.0.RC2</moditect.maven.plugin> <moditect.maven.plugin>1.0.0.RC2</moditect.maven.plugin>
<jpackage.maven.plugin>0.1.5</jpackage.maven.plugin> <maven.pmd.plugin>3.22.0</maven.pmd.plugin>
<maven.pmd.version>3.22.0</maven.pmd.version>
<codehaus.version.plugin>2.16.2</codehaus.version.plugin>
<javafx.maven.plugin>0.0.8</javafx.maven.plugin>
<spotbugs.maven.plugin>4.8.5.0</spotbugs.maven.plugin> <spotbugs.maven.plugin>4.8.5.0</spotbugs.maven.plugin>
<spotbugs.version>4.8.5</spotbugs.version> <spotbugs.version>4.8.5</spotbugs.version>
@ -237,7 +239,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId> <artifactId>maven-pmd-plugin</artifactId>
<version>${maven.pmd.version}</version> <version>${maven.pmd.plugin}</version>
<configuration> <configuration>
<minimumTokens>100</minimumTokens> <minimumTokens>100</minimumTokens>
<targetJdk>${java.version}</targetJdk> <targetJdk>${java.version}</targetJdk>
@ -272,6 +274,20 @@
</executions> </executions>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- JavaFX Plugin to start application --> <!-- JavaFX Plugin to start application -->
<plugin> <plugin>
<groupId>org.openjfx</groupId> <groupId>org.openjfx</groupId>
@ -284,6 +300,71 @@
</plugins> </plugins>
</build> </build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven.project.info.reports.plugin}</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>dependencies</report>
<report>licenses</report>
<report>summary</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin}</version>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
<reportSet>
<id>tests</id>
<configuration>
<show>private</show>
</configuration>
<reports>
<report>test-javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven.pmd.plugin}</version>
<reportSets>
<reportSet>
<reports>
<report>pmd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs.maven.plugin}</version>
<reportSets>
<reportSet>
<reports>
<report>spotbugs</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles> <profiles>
<!-- Profile that adds JLink and JPackage runs. <!-- Profile that adds JLink and JPackage runs.