base-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.github.hazendaz</groupId>
<artifactId>base-parent</artifactId>
<version>56</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
base-parent (https://github.com/hazendaz/base-parent)
Copyright 2011-2025 Hazendaz.
All rights reserved. This program and the accompanying materials
are made available under the terms of The Apache Software License,
Version 2.0 which accompanies this distribution, and is available at
https://www.apache.org/licenses/LICENSE-2.0.txt
Contributors:
Hazendaz (Jeremy Landis).
-->
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.hazendaz</groupId>
<artifactId>base-parent</artifactId>
<version>56</version>
<packaging>pom</packaging>
<name>base-parent</name>
<description>Base Maven Parent solving majority of Maven configurations. Use this to drive your maven builds.</description>
<url>https://github.com/hazendaz/base-parent</url>
<inceptionYear>2011</inceptionYear>
<organization>
<name>hazendaz</name>
<url>https://github.com/hazendaz/</url>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>manual</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<developers>
<developer>
<id>jlandis</id>
<name>Jeremy Landis</name>
<email>jeremylandis@hotmail.com</email>
<url>https://www.linkedin.com/in/jeremy-landis-548b2719</url>
<organization>hazendaz</organization>
<organizationUrl>https://github.com/hazendaz</organizationUrl>
<roles>
<role>Architect</role>
<role>Developer</role>
</roles>
<timezone>-5</timezone>
<properties>
<picUrl>https://avatars0.githubusercontent.com/u/975267</picUrl>
</properties>
</developer>
</developers>
<contributors>
<contributor>
<name>Jeremy Landis</name>
<email>jeremylandis@hotmail.com</email>
<url>https://www.linkedin.com/in/jeremy-landis-548b2719</url>
<organization>hazendaz</organization>
<organizationUrl>https://github.com/hazendaz</organizationUrl>
<roles>
<role>Developer</role>
</roles>
<timezone>-5</timezone>
<properties>
<picUrl>https://avatars0.githubusercontent.com/u/975267</picUrl>
</properties>
</contributor>
</contributors>
<scm>
<connection>scm:git:ssh://git@github.com/hazendaz/base-parent.git</connection>
<developerConnection>scm:git:ssh://git@github.com/hazendaz/base-parent.git</developerConnection>
<tag>base-parent-56</tag>
<url>https://github.com/hazendaz/base-parent</url>
</scm>
<issueManagement>
<system>Github</system>
<url>https://github.com/hazendaz/base-parent/issues</url>
</issueManagement>
<ciManagement>
<system>Github</system>
<url>https://github.com/hazendaz/base-parent/actions</url>
<notifiers>
<notifier>
<type>mail</type>
<sendOnError>true</sendOnError>
<sendOnFailure>true</sendOnFailure>
<sendOnSuccess>false</sendOnSuccess>
<sendOnWarning>false</sendOnWarning>
<configuration>
<address>jeremylandis@hotmail.com</address>
</configuration>
</notifier>
</notifiers>
</ciManagement>
<distributionManagement>
<snapshotRepository>
<id>central</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</snapshotRepository>
<site>
<id>gh-pages-scm</id>
<name>Base Parent GitHub Pages</name>
<url>scm:git:ssh://git@github.com/hazendaz/base-parent.git</url>
</site>
</distributionManagement>
<properties>
<!-- Copyright -->
<copyright>2025</copyright>
<!-- Github Token -->
<github.global.server>github</github.global.server>
<!-- Jacoco minimum code coverage (used under checks only currently) -->
<jacoco.minimum.coverage>1.00</jacoco.minimum.coverage>
<!-- Automatic Module Name -->
<module.name>com.github.hazendaz.parent</module.name>
<!-- Maven date configuration -->
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
<!-- Maven compiler options -->
<java.version>11</java.version>
<java.release.version>11</java.release.version>
<java.test.version>${java.version}</java.test.version>
<java.test.release.version>${java.release.version}</java.test.release.version>
<!-- Javadoc Release is strict due to maven bug and automatic module naming; it needs extra help, see examples, later fixed by legacy.mode flag -->
<javadoc.java.release.version>${java.release.version}</javadoc.java.release.version>
<javadoc.legacy.mode>true</javadoc.legacy.mode>
<!-- Javadoc help examples
Additional modules need added if build notes to do so, following is an example (note errors are not very clear)
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalOptions combine.children="append">
<additionalOption>\-\-add-modules</additionalOption>
<additionalOption>java.sql</additionalOption>
<additionalOption>\-\-add-modules</additionalOption>
<additionalOption>java.naming</additionalOption>
<additionalOption>...others...</additionalOption>
</additionalOptions>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
-->
<!-- Legacy compiler options source/target not really needed now (but still used by things like sonar, m2e) -->
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.testSource>${java.test.version}</maven.compiler.testSource>
<maven.compiler.testTarget>${java.test.version}</maven.compiler.testTarget>
<maven.compiler.release>${java.release.version}</maven.compiler.release>
<maven.compiler.testRelease>${java.test.release.version}</maven.compiler.testRelease>
<!-- Get method parameter names via reflection -->
<maven.compiler.parameters>true</maven.compiler.parameters>
<!-- Maven minimum version -->
<maven.min-version>3.9.9</maven.min-version>
<!-- Project Encoding -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Reproducible Builds -->
<project.build.outputTimestamp>1761410398</project.build.outputTimestamp>
<!-- Due to maven bug, fix timestamp -->
<timestamp>${maven.build.timestamp}</timestamp>
<!-- Enforcer Jdks Allowed -->
<allowed.build.jdks note="Allow any 17, 21, 24, 25, 26">[17,18),[21,22),[24,25),[25,26),[26,27)</allowed.build.jdks>
<!-- Supported Versions -->
<checker-qual.version>3.51.1</checker-qual.version>
<error-prone.version>2.43.0</error-prone.version>
<hibernate-validator.version>9.0.1.Final</hibernate-validator.version>
<j2objc.version>3.1</j2objc.version>
<lombok.version>1.18.42</lombok.version>
<modernizer.version>3.2.0</modernizer.version>
<spotbugs.version>4.9.8</spotbugs.version>
<!-- Checkstyle -->
<checkstyle.config>checkstyle.xml</checkstyle.config>
<!-- plugin versions -->
<antrun.plugin>3.2.0</antrun.plugin>
<assembly.plugin>3.7.1</assembly.plugin>
<build-helper.plugin>3.6.1</build-helper.plugin>
<buildplan.plugin>2.2.2</buildplan.plugin>
<central-publishing.plugin>0.9.0</central-publishing.plugin>
<changelog.plugin>3.0.0-M1</changelog.plugin>
<changes.plugin>3.0.0-M3</changes.plugin>
<checkstyle.plugin>3.6.0</checkstyle.plugin>
<clean.plugin>3.5.0</clean.plugin>
<compiler.plugin>3.14.1</compiler.plugin>
<coveralls.plugin>5.0.0</coveralls.plugin>
<cyclonedx.plugin>2.9.1</cyclonedx.plugin>
<dependency.plugin>3.9.0</dependency.plugin>
<dependency-check.plugin>12.1.8</dependency-check.plugin>
<deploy.plugin>3.1.4</deploy.plugin>
<directory.plugin>1.2.2</directory.plugin>
<enforcer.plugin>3.6.2</enforcer.plugin>
<failsafe.plugin>3.5.4</failsafe.plugin>
<find-and-replace.plugin>1.2.0</find-and-replace.plugin>
<formatter.plugin>2.29.0</formatter.plugin>
<frontend.plugin>1.15.4</frontend.plugin>
<git-commit.plugin>9.0.2</git-commit.plugin>
<gpg.plugin>3.2.8</gpg.plugin>
<htmlcompressor.plugin>2.2.0</htmlcompressor.plugin>
<impsort.plugin>1.12.0</impsort.plugin>
<install.plugin>3.1.4</install.plugin>
<jacoco.plugin>0.8.14</jacoco.plugin>
<jandex.plugin>1.2.3</jandex.plugin>
<jar.plugin>3.4.2</jar.plugin>
<javadoc.plugin>3.12.0</javadoc.plugin>
<jaxws.plugin>4.0.3</jaxws.plugin>
<joinfaces.plugin>5.1.12</joinfaces.plugin>
<jxr.plugin>3.6.0</jxr.plugin>
<kotlin.plugin>2.2.21</kotlin.plugin>
<license.plugin>5.0.0</license.plugin>
<lifecycle.plugin>1.0.0</lifecycle.plugin>
<lombok.plugin>1.18.20.0</lombok.plugin>
<makeself.plugin>1.9.2</makeself.plugin>
<modernizer.plugin>3.2.0</modernizer.plugin>
<pmd.plugin>3.28.0</pmd.plugin>
<project-info.plugin>3.9.0</project-info.plugin>
<release.plugin>3.1.1</release.plugin>
<resources.plugin>3.3.1</resources.plugin>
<rewrite.plugin>6.22.1</rewrite.plugin>
<smartsprites.plugin>2.4.0</smartsprites.plugin>
<scm-publish.plugin>3.3.0</scm-publish.plugin>
<site.plugin>3.21.0</site.plugin>
<sonar.plugin>5.2.0.4988</sonar.plugin>
<sortpom.plugin>4.0.0</sortpom.plugin>
<source.plugin>3.3.1</source.plugin>
<spotbugs.plugin>4.9.8.1</spotbugs.plugin>
<spotless.plugin>3.0.0</spotless.plugin>
<springboot.plugin>3.5.7</springboot.plugin>
<surefire.plugin>3.5.4</surefire.plugin>
<taglist.plugin>3.2.1</taglist.plugin>
<versions.plugin>2.19.1</versions.plugin>
<war.plugin>3.4.0</war.plugin>
<wrapper.plugin>3.3.4</wrapper.plugin>
<whitespace.plugin>1.5.0</whitespace.plugin>
<yuicompressor.plugin>2.2.0</yuicompressor.plugin>
<xml-format.plugin>3.2.0</xml-format.plugin>
<!-- Dependencies for plugins -->
<asm.version>9.9</asm.version>
<build-tools.version>1.5.0</build-tools.version>
<checkstyle.version>12.1.0</checkstyle.version>
<extra-enforcer-rules.version>1.11.0</extra-enforcer-rules.version>
<fluido.version note="Make sure to update in site.xml">2.1.0</fluido.version>
<htmlcompressor.version>2.1.0</htmlcompressor.version>
<license-git.version>5.0.0</license-git.version>
<pmd.version>7.17.0</pmd.version>
<restrict-imports-enforcer-rule.version>3.0.0</restrict-imports-enforcer-rule.version>
<yuicompressor.version>2.4.8</yuicompressor.version>
<!-- Spotbugs Extensions -->
<bug-pattern.version>1.5.0</bug-pattern.version>
<findsecbugs.version>1.14.0</findsecbugs.version>
<sb-contrib.version>7.6.15</sb-contrib.version>
<!-- Verification Checks -->
<error-prone.failOnViolations>-XepAllErrorsAsWarnings</error-prone.failOnViolations>
<error-prone.skipGeneratedCode>-XepDisableWarningsInGeneratedCode -XepExcludedPaths:.*target/generated-sources/.*</error-prone.skipGeneratedCode>
<!-- Hack for single site builds so site:staging works as expected. Do not use with multi module!
Instead adjust for fact that maven bug causes staging to be up one directory with 'reponame.git' -->
<topSiteURL>${project.distributionManagement.site.url}</topSiteURL>
</properties>
<dependencies>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>${checker-qual.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${error-prone.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.j2objc</groupId>
<artifactId>j2objc-annotations</artifactId>
<version>${j2objc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-annotations</artifactId>
<version>${modernizer.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>${spotbugs.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>central-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</repository>
</repositories>
<build>
<pluginManagement>
<plugins>
<!-- Diff Plug Maven Plugins -->
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless.plugin}</version>
<configuration>
<formats>
<format>
<includes>
<include>**/*.sh</include>
<include>**/*.yml</include>
<include>**/*.yaml</include>
</includes>
<excludes>
<exclude>**/node_modules/**</exclude>
<exclude>**/target/**</exclude>
</excludes>
<trimTrailingWhitespace />
<endWithNewline />
<indent>
<spaces>true</spaces>
<spacesPerTab>2</spacesPerTab>
</indent>
</format>
<format>
<includes>
<include>**/*.xml</include>
</includes>
<excludes>
<exclude>**/node_modules/**</exclude>
<exclude>**/target/**</exclude>
<exclude>**/.pmdruleset.xml</exclude>
</excludes>
<trimTrailingWhitespace />
<endWithNewline />
<indent>
<spaces>true</spaces>
<spacesPerTab>4</spacesPerTab>
</indent>
</format>
</formats>
</configuration>
</plugin>
<!-- Github Provided Plugins -->
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend.plugin}</version>
</plugin>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<version>${sortpom.plugin}</version>
<configuration>
<createBackupFile>false</createBackupFile>
<expandEmptyElements>false</expandEmptyElements>
<keepBlankLines>true</keepBlankLines>
<nrOfIndentSpace>4</nrOfIndentSpace>
<predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
<spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
</configuration>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${coveralls.plugin}</version>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>htmlcompressor-maven-plugin</artifactId>
<version>${htmlcompressor.plugin}</version>
<configuration>
<compressCss>true</compressCss>
<compressJavaScript>true</compressJavaScript>
<javascriptHtmlSprite>false</javascriptHtmlSprite>
<removeIntertagSpaces>true</removeIntertagSpaces>
<srcFolder>${project.basedir}/src/main/resources</srcFolder>
<targetFolder>${project.basedir}/target/classes</targetFolder>
<yuiJsNoMunge>true</yuiJsNoMunge>
<fileExtensions>
<fileExtension>html</fileExtension>
<fileExtension>jsp</fileExtension>
<fileExtension>jspx</fileExtension>
<fileExtension>xhtml</fileExtension>
<fileExtension>xml</fileExtension>
<fileExtension>xsd</fileExtension>
<fileExtension>xslt</fileExtension>
<fileExtension>wsdl</fileExtension>
</fileExtensions>
</configuration>
<dependencies>
<dependency>
<groupId>com.github.hazendaz</groupId>
<artifactId>htmlcompressor</artifactId>
<version>${htmlcompressor.version}</version>
</dependency>
<dependency>
<groupId>com.yahoo.platform.yui</groupId>
<artifactId>yuicompressor</artifactId>
<version>${yuicompressor.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>makeself-maven-plugin</artifactId>
<version>${makeself.plugin}</version>
<configuration>
<keepUmask>true</keepUmask>
<sha256>true</sha256>
</configuration>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>smartsprites-maven-plugin</artifactId>
<version>${smartsprites.plugin}</version>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs.plugin}</version>
<configuration>
<effort>Max</effort>
<includeTests>true</includeTests>
<failOnError>false</failOnError>
<plugins>
<plugin>
<groupId>com.mebigfatguy.sb-contrib</groupId>
<artifactId>sb-contrib</artifactId>
<version>${sb-contrib.version}</version>
</plugin>
<plugin>
<groupId>com.h3xstream.findsecbugs</groupId>
<artifactId>findsecbugs-plugin</artifactId>
<version>${findsecbugs.version}</version>
</plugin>
<plugin>
<groupId>jp.skypencil.findbugs.slf4j</groupId>
<artifactId>bug-pattern</artifactId>
<version>${bug-pattern.version}</version>
</plugin>
</plugins>
</configuration>
<dependencies>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>${spotbugs.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>whitespace-maven-plugin</artifactId>
<version>${whitespace.plugin}</version>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>${yuicompressor.plugin}</version>
<configuration>
<nomunge>true</nomunge>
<nosuffix>true</nosuffix>
<excludes>
<exclude>**/*.min.js</exclude>
<exclude>**/*.min.css</exclude>
</excludes>
</configuration>
<dependencies>
<dependency>
<groupId>com.yahoo.platform.yui</groupId>
<artifactId>yuicompressor</artifactId>
<version>${yuicompressor.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Mycila Provided Plugins -->
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license.plugin}</version>
<configuration>
<licenseSets>
<licenseSet>
<header>LICENSE_HEADER</header>
<excludes>
<!-- Default excludes located at https://github.com/mathieucarbou/license-maven-plugin/blob/master/license-maven-plugin/src/main/java/com/mycila/maven/plugin/license/Default.java -->
</excludes>
</licenseSet>
</licenseSets>
<prohibitLegacyUse>true</prohibitLegacyUse>
</configuration>
<dependencies>
<dependency>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin-git</artifactId>
<version>${license-git.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Sun (Jakarta) Provided Plugins -->
<plugin>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>${jaxws.plugin}</version>
</plugin>
<!-- Github IO Provided Plugins -->
<plugin>
<groupId>io.github.floverfelt</groupId>
<artifactId>find-and-replace-maven-plugin</artifactId>
<version>${find-and-replace.plugin}</version>
</plugin>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>${git-commit.plugin}</version>
<configuration>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
<!-- Fixes issues, see https://github.com/ktoso/maven-git-commit-id-plugin/issues/61 -->
<gitDescribe>
<always>true</always>
</gitDescribe>
</configuration>
</plugin>
<!-- Revelc Provided Plugins -->
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
<version>${impsort.plugin}</version>
<configuration>
<groups>au,ch,com,de,dev,edu,io,jakarta,java,javassist,javax,lombok,mockit,net,nl,ognl,oracle,org,oshi,waffle</groups>
<staticGroups>java,*</staticGroups>
<removeUnused>true</removeUnused>
</configuration>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>${formatter.plugin}</version>
<configuration>
<configFile>eclipse-formatter-config-4space.xml</configFile>
</configuration>
<dependencies>
<dependency>
<groupId>com.github.hazendaz</groupId>
<artifactId>build-tools</artifactId>
<version>${build-tools.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Maven Provided Plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${antrun.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${assembly.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changelog-plugin</artifactId>
<version>${changelog.plugin}</version>
<configuration>
<!-- TODO: Does not work with newer git versions until maven fixes its usage! -->
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${changes.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle.plugin}</version>
<configuration>
<configLocation>${checkstyle.config}</configLocation>
<excludeGeneratedSources>true</excludeGeneratedSources>
<failOnViolation>false</failOnViolation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<violationSeverity>info</violationSeverity>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${clean.plugin}</version>
<configuration>
<!-- Delete all from target but not target itself -->
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>${project.build.directory}</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
<force>true</force>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler.plugin}</version>
<configuration>
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>${error-prone.version}</version>
</annotationProcessorPath>
<annotationProcessorPath>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</annotationProcessorPath>
<annotationProcessorPath>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>${hibernate-validator.version}</version>
</annotationProcessorPath>
</annotationProcessorPaths>
<compilerArgs>
<compilerArg>-XDcompilePolicy=simple</compilerArg>
<compilerArg>--should-stop=ifError=FLOW</compilerArg>
<compilerArg>-Xplugin:ErrorProne ${error-prone.failOnViolations} ${error-prone.skipGeneratedCode}</compilerArg>
</compilerArgs>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<!-- Slightly faster builds, see https://issues.apache.org/jira/browse/MCOMPILER-209 -->
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${dependency.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${deploy.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${enforcer.plugin}</version>
<configuration>
<rules>
<bannedDependencies>
<message>Do not use obsolete logging libraries. Prefer slf4j/logback and override slf4j libraries for replacements. Use only commons-logging when needed and no overrides from any of the major logging providers.</message>
<excludes>
<exclude>log4j:log4j</exclude>
<exclude>org.apache.logging.log4j:log4j-jcl</exclude>
<exclude>org.slf4j:jcl-over-slf4j</exclude>
<exclude>org.slf4j:slf4j-log4j12</exclude>
<exclude>org.springframework:spring-jcl</exclude>
</excludes>
</bannedDependencies>
<banDuplicatePomDependencyVersions />
<enforceBytecodeVersion>
<maxJdkVersion>${java.version}</maxJdkVersion>
<ignoredScopes>provided,test</ignoredScopes>
</enforceBytecodeVersion>
<reactorModuleConvergence />
<requireJavaVersion>
<message>Allowed jdks ${allowd.build.jdks}. Please upgrade java and configure 'JAVA_HOME'.</message>
<version>${allowed.build.jdks}</version>
</requireJavaVersion>
<requireMavenVersion>
<message>Minimum mave ${maven.min-version}. Please upgrade maven and configure 'M2_HOME'.</message>
<version>[${maven.min-version},)</version>
</requireMavenVersion>
<requirePluginVersions>
<message>[ERROR] Best Practice is to always define plugin versions!</message>
<banLatest>true</banLatest>
<banRelease>true</banRelease>
<banSnapshots>true</banSnapshots>
<phases>clean,deploy,site</phases>
</requirePluginVersions>
<restrictImports>
<includeTestCode>true</includeTestCode>
<groups>
<group>
<reason>Don't allow obsolete logging</reason>
<bannedImports>
<bannedImport>java.util.logging.**</bannedImport>
<bannedImport>org.apache.commons.logging.**</bannedImport>
<bannedImport>org.apache.log4j.**</bannedImport>
</bannedImports>
</group>
</groups>
</restrictImports>
</rules>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>${extra-enforcer-rules.version}</version>
</dependency>
<dependency>
<groupId>de.skuzzle.enforcer</groupId>
<artifactId>restrict-imports-enforcer-rule</artifactId>
<version>${restrict-imports-enforcer-rule.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${failsafe.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${gpg.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${install.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${jar.plugin}</version>
<configuration>
<archive>
<manifest>
<addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
<Copyright>${copyright}</Copyright>
<Git-Revision>${git.commit.id}</Git-Revision>
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
<X-Compile-Release-JDK>${maven.compiler.release}</X-Compile-Release-JDK>
</manifestEntries>
</archive>
<skipIfEmpty>true</skipIfEmpty>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.plugin}</version>
<configuration>
<additionalOptions>
<additionalOption>-html5</additionalOption>
</additionalOptions>
<archive>
<manifest>
<addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
<Copyright>${copyright}</Copyright>
<Git-Revision>${git.commit.id}</Git-Revision>
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
<X-Compile-Release-JDK>${maven.compiler.release}</X-Compile-Release-JDK>
</manifestEntries>
</archive>
<legacyMode>${javadoc.legacy.mode}</legacyMode>
<notimestamp>true</notimestamp>
<quiet>true</quiet>
<release>${javadoc.java.release.version}</release>
<source>${javadoc.java.release.version}</source>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>${jxr.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmd.plugin}</version>
<configuration>
<analysisCache>true</analysisCache>
<failOnViolation>false</failOnViolation>
<printFailingErrors>true</printFailingErrors>
</configuration>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-groovy</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-html</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>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-kotlin</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-xml</artifactId>
<version>${pmd.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${project-info.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${release.plugin}</version>
<configuration>
<addSchema>false</addSchema>
<arguments>-Daether.checksums.algorithms=SHA-512,SHA-256,SHA-1,MD5</arguments>
<autoVersionSubmodules>true</autoVersionSubmodules>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${resources.plugin}</version>
<configuration>
<!-- Defaults to source, use resources as this is a resource -->
<propertiesEncoding>${project.build.resourceEncoding}</propertiesEncoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>${scm-publish.plugin}</version>
<configuration>
<checkoutDirectory>${user.home}/maven-sites/${project.name}</checkoutDirectory>
<!-- no need for site:stage, use target/site or target/checkout/target/site on release -->
<content>${project.reporting.outputDirectory}</content>
<scmBranch>gh-pages</scmBranch>
<tryUpdate>true</tryUpdate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${site.plugin}</version>
<configuration>
<archive>
<manifest>
<addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
<Copyright>${copyright}</Copyright>
<Git-Revision>${git.commit.id}</Git-Revision>
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
<X-Compile-Release-JDK>${maven.compiler.release}</X-Compile-Release-JDK>
</manifestEntries>
</archive>
<!-- don't deploy site with maven-site-plugin (instead use scm publish during release) -->
<skipDeploy>true</skipDeploy>
</configuration>
<dependencies>
<!-- For reporting only of versions -->
<dependency>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>${fluido.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.plugin}</version>
<configuration>
<archive>
<manifest>
<addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
<Copyright>${copyright}</Copyright>
<Git-Revision>${git.commit.id}</Git-Revision>
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
<X-Compile-Release-JDK>${maven.compiler.release}</X-Compile-Release-JDK>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${surefire.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${war.plugin}</version>
<configuration>
<archive>
<manifest>
<addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
<Copyright>${copyright}</Copyright>
<Git-Revision>${git.commit.id}</Git-Revision>
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
<X-Compile-Release-JDK>${maven.compiler.release}</X-Compile-Release-JDK>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-wrapper-plugin</artifactId>
<version>${wrapper.plugin}</version>
</plugin>
<!-- Codehaus Provided Plugins -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper.plugin}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildplan-maven-plugin</artifactId>
<version>${buildplan.plugin}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>${taglist.plugin}</version>
<configuration>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>FIXME Work</displayName>
<tags>
<tag>
<matchString>fixme</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>@fixme</matchString>
<matchType>ignoreCase</matchType>
</tag>
</tags>
</tagClass>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>@todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
</tags>
</tagClass>
<tagClass>
<displayName>Deprecated Work</displayName>
<tags>
<tag>
<matchString>@deprecated</matchString>
<matchType>ignoreCase</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions.plugin}</version>
</plugin>
<!-- Cyclonedx Maven Plugins -->
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx.plugin}</version>
<configuration>
<skipNotDeployed>false</skipNotDeployed>
<verbose>false</verbose>
</configuration>
</plugin>
<!-- Gaul Provided Plugins -->
<plugin>
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-plugin</artifactId>
<version>${modernizer.plugin}</version>
<configuration>
<javaVersion>${maven.compiler.release}</javaVersion>
</configuration>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Jacoco Provided Plugins -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.plugin}</version>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>COMPLEXITY</counter>
<value>COVEREDRATIO</value>
<minimum>${jacoco.minimum.coverage}</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</plugin>
<!-- Jboss Maven Plugins -->
<plugin>
<groupId>org.jboss.jandex</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<version>${jandex.plugin}</version>
</plugin>
<!-- Jetbrains Maven Plugins -->
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.plugin}</version>
<configuration>
<jvmTarget>${java.release.version</jvmTarget>
<javaParameters>true</javaParameters>
</configuration>
</plugin>
<!-- Joinfaces Maven Plugins -->
<plugin>
<groupId>org.joinfaces</groupId>
<artifactId>joinfaces-maven-plugin</artifactId>
<version>${joinfaces.plugin}</version>
</plugin>
<!-- OpenRewrite Maven Plugins -->
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>${rewrite.plugin}</version>
</plugin>
<!-- Owasp Provided Plugins -->
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependency-check.plugin}</version>
<configuration>
<failOnError>false</failOnError>
<nvdApiServerId>nvd</nvdApiServerId>
</configuration>
</plugin>
<!-- Project Lombok Maven Plugins -->
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>${lombok.plugin}</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Sonar Provided Plugins -->
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar.plugin}</version>
</plugin>
<!-- Sonatype Provided Plugins -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing.plugin}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
</configuration>
</plugin>
<!-- Springboot Maven Plugins -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.plugin}</version>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>directory-maven-plugin</artifactId>
<version>${directory.plugin}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Build Plugins -->
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<executions>
<execution>
<id>git-commit-id</id>
<goals>
<goal>revision</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<!-- Packaging types / Tools -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>attach-jars</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Reporting Plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Tools -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
</execution>
<execution>
<id>enforce-clean</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>pre-clean</phase>
</execution>
<execution>
<id>enforce-site</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>pre-site</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Checkstyle dependencies required here or they won't be used (per maven) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.github.hazendaz</groupId>
<artifactId>build-tools</artifactId>
<version>${build-tools.version}</version>
</dependency>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-plugin</artifactId>
<executions>
<execution>
<id>modernizer</id>
<goals>
<goal>modernizer</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<executions>
<execution>
<id>makeAggregateBom</id>
<goals>
<goal>makeAggregateBom</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Sonatype Provided Plugins -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changelog-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>github-changes</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>checkstyle</report>
<report>checkstyle-aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>aggregate-cpd</report>
<report>aggregate-pmd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<!-- select non-aggregate reports -->
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- This plugin will fail if any POM is marked as Byte Order Mark is UTF-8 (BOM).
If this occurs, remove the byte order mark (bom). -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<reportSets>
<reportSet>
<reports>
<report>aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>checks</id>
<build>
<plugins>
<!-- Reporting Plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- External Tools -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>compression</id>
<activation>
<file>
<exists>${project.basedir}/compression.xml</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>htmlcompressor-maven-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>html</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compress</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>eclipse</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<properties>
<!-- Make m2e use java at test revision level -->
<maven.compiler.source>${java.test.version}</maven.compiler.source>
<maven.compiler.target>${java.test.version}</maven.compiler.target>
<maven.compiler.release>${java.test.release.version}</maven.compiler.release>
</properties>
<build>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<!-- Keep version here as fake version and maven report info has problems defining it in dependency management -->
<version>${lifecycle.plugin}</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<!-- impsort m2e in plugin states to ignore, we will process -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
<versionRange>[${impsort.plugin},)</versionRange>
<goals>
<goal>sort</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
<!-- rewrite m2e in plugin missing, we will process -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<versionRange>[${rewrite.plugin},)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>format</id>
<activation>
<file>
<exists>${project.basedir}/format.xml</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>sort</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<configuration>
<activeRecipes>
<activeRecipe>org.openrewrite.java.RemoveUnusedImports</activeRecipe>
</activeRecipes>
</configuration>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>sort</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>apply</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.hazendaz.maven</groupId>
<artifactId>whitespace-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>trim</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk17on</id>
<activation>
<jdk>[17,)</jdk>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<compilerArgs combine.children="append">
<!-- Error Prone Configuration -->
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</compilerArg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>license-header</id>
<activation>
<file>
<exists>${project.basedir}/LICENSE_HEADER</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>format</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<!-- Skip license plugin during release as maven release is now shallow cloned -->
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!-- deploy site with maven-scm-publish-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<executions>
<execution>
<id>scm-publish</id>
<goals>
<goal>publish-scm</goal>
</goals>
<phase>site-deploy</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rewrite-junit</id>
<build>
<plugins>
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<configuration>
<activeRecipes>
<activeRecipe>org.openrewrite.java.testing.cleanup.BestPractices</activeRecipe>
<activeRecipe>org.openrewrite.java.testing.hamcrest.MigrateHamcrestToAssertJ</activeRecipe>
<activeRecipe>org.openrewrite.java.testing.jmockit.JMockitToMockito</activeRecipe>
<activeRecipe>org.openrewrite.java.testing.mockito.ReplacePowerMockito</activeRecipe>
<activeRecipe>org.openrewrite.java.testing.junit5.JUnit5BestPractices</activeRecipe>
<activeRecipe>org.openrewrite.java.testing.mockito.MockitoBestPractices</activeRecipe>
<activeRecipe>org.openrewrite.java.RemoveUnusedImports</activeRecipe>
</activeRecipes>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-testing-frameworks</artifactId>
<version>3.20.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>wsimport</id>
<build>
<plugins>
<plugin>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<executions>
<execution>
<id>wsimport</id>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>