270 lines
11 KiB
XML
270 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>de.kneitzel</groupId>
|
|
<artifactId>javaapp</artifactId>
|
|
<version>1.0-SNAPSHOT</version>
|
|
|
|
<organization>
|
|
<name>Java Forum</name>
|
|
</organization>
|
|
|
|
<properties>
|
|
<!-- Application Properties -->
|
|
<link.name>${project.artifactId}</link.name>
|
|
<launcher>${project.artifactId}</launcher>
|
|
<appName>${project.artifactId}</appName>
|
|
<main.class>de.kneitzel.JavaApp</main.class>
|
|
<main.module>AppModule</main.module>
|
|
<java.version>17</java.version>
|
|
|
|
<!-- Dependency versions -->
|
|
<junit.version>5.8.2</junit.version>
|
|
<lombok.version>1.18.24</lombok.version>
|
|
|
|
<!-- Plugin dependencies -->
|
|
<maven.compiler.plugin>3.8.1</maven.compiler.plugin>
|
|
<maven.dependency.plugin>3.1.2</maven.dependency.plugin>
|
|
<maven.surfire.plugin>3.0.0-M5</maven.surfire.plugin>
|
|
<moditect.maven.plugin>1.0.0.RC1</moditect.maven.plugin>
|
|
<jpackage.maven.plugin>0.1.2</jpackage.maven.plugin>
|
|
<maven.pmd.version>3.14.0</maven.pmd.version>
|
|
<pmd.version>6.38.0</pmd.version>
|
|
<codehaus.version.plugin>2.8.1</codehaus.version.plugin>
|
|
<spotbugs.maven.plugin>4.7.0.0</spotbugs.maven.plugin>
|
|
<spotbugs.version>4.7.1</spotbugs.version>
|
|
|
|
<!-- other properties -->
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
|
|
|
</properties>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<version>${lombok.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>${maven.compiler.plugin}</version>
|
|
<configuration>
|
|
<release>${java.version}</release>
|
|
<annotationProcessorPaths>
|
|
<path>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<version>${lombok.version}</version>
|
|
</path>
|
|
</annotationProcessorPaths>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${maven.surfire.plugin}</version>
|
|
<configuration>
|
|
<testFailureIgnore>true</testFailureIgnore>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>${maven.dependency.plugin}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-dependencies</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>copy-dependencies</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/modules</outputDirectory>
|
|
<overWriteReleases>false</overWriteReleases>
|
|
<overWriteSnapshots>false</overWriteSnapshots>
|
|
<overWriteIfNewer>true</overWriteIfNewer>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.moditect</groupId>
|
|
<artifactId>moditect-maven-plugin</artifactId>
|
|
<version>${moditect.maven.plugin}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>add-module-info-to-dependencies</id>
|
|
<phase>package</phase>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/modules</outputDirectory>
|
|
<overwriteExistingFiles>true</overwriteExistingFiles>
|
|
<!-- Beispiel wie eine Dependency ohne module-info diese bekommen kann! -->
|
|
<!--
|
|
<modules>
|
|
<module>
|
|
<artifact>
|
|
<groupId>org.json</groupId>
|
|
<artifactId>json</artifactId>
|
|
</artifact>
|
|
<moduleInfo>
|
|
<name>org.json</name>
|
|
</moduleInfo>
|
|
</module>
|
|
</modules>
|
|
-->
|
|
|
|
<module>
|
|
<mainClass>${main.class}</mainClass>
|
|
<moduleInfoFile>${project.build.sourceDirectory}/module-info.java</moduleInfoFile>
|
|
</module>
|
|
|
|
<jdepsExtraArgs>
|
|
--ignore-missing-deps
|
|
</jdepsExtraArgs>
|
|
</configuration>
|
|
<goals>
|
|
<goal>add-module-info</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>create-runtime-image</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>create-runtime-image</goal>
|
|
</goals>
|
|
<configuration>
|
|
<modulePath>
|
|
<path>${project.build.directory}/modules</path>
|
|
</modulePath>
|
|
<modules>
|
|
<module>${main.module}</module>
|
|
</modules>
|
|
<launcher>
|
|
<name>${launcher}</name>
|
|
<module>${main.module}</module>
|
|
</launcher>
|
|
<compression>2</compression>
|
|
<stripDebug>true</stripDebug>
|
|
<outputDirectory>${project.build.directory}/jlink-image</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.github.akman</groupId>
|
|
<artifactId>jpackage-maven-plugin</artifactId>
|
|
<version>${jpackage.maven.plugin}</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jpackage</goal>
|
|
</goals>
|
|
<configuration>
|
|
<name>${appName}</name>
|
|
<type>IMAGE</type>
|
|
<runtimeimage>${project.build.directory}/jlink-image</runtimeimage>
|
|
<module>${main.module}/${main.class}</module>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
|
<version>${spotbugs.maven.plugin}</version>
|
|
<dependencies>
|
|
<!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
|
|
<dependency>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs</artifactId>
|
|
<version>${spotbugs.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-pmd-plugin</artifactId>
|
|
<version>${maven.pmd.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>net.sourceforge.pmd</groupId>
|
|
<artifactId>pmd-core</artifactId>
|
|
<version>${pmd.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.sourceforge.pmd</groupId>
|
|
<artifactId>pmd-java</artifactId>
|
|
<version>${pmd.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.sourceforge.pmd</groupId>
|
|
<artifactId>pmd-javascript</artifactId>
|
|
<version>${pmd.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.sourceforge.pmd</groupId>
|
|
<artifactId>pmd-jsp</artifactId>
|
|
<version>${pmd.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<configuration>
|
|
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
|
|
<minimumTokens>100</minimumTokens>
|
|
<targetJdk>${java.version}</targetJdk>
|
|
<rulesets>
|
|
<ruleset>pmd-ruleset.xml</ruleset>
|
|
</rulesets>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>versions-maven-plugin</artifactId>
|
|
<version>${codehaus.version.plugin}</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>display-dependency-updates</goal>
|
|
<goal>display-plugin-updates</goal>
|
|
<goal>display-property-updates</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
</build>
|
|
</project>
|