basepom-foundation
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.basepom</groupId>
<artifactId>basepom-foundation</artifactId>
<version>59</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<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>org.basepom</groupId>
<artifactId>basepom-foundation</artifactId>
<packaging>pom</packaging>
<version>59</version>
<!--
<name>basepom-foundation</name>
<description>Base POM foundation that codifies policy and plugins.</description>
<url>https://github.com/basepom/basepom/tree/main/foundation</url>
-->
<properties>
<!-- see https://cwiki.apache.org/confluence/display/MAVEN/POM+Element+for+Source+File+Encoding -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- The minimum JDK version required to build. -->
<project.build.systemJdk>11</project.build.systemJdk>
<!-- The default build target. Any value from 7 - current is allowed -->
<project.build.targetJdk>11</project.build.targetJdk>
<maven.compiler.source>${project.build.targetJdk}</maven.compiler.source>
<maven.compiler.target>${project.build.targetJdk}</maven.compiler.target>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<project.reporting.inputEncoding>UTF-8</project.reporting.inputEncoding>
<!-- Build specific options are prefixed basepom.build. -->
<!-- Default jvm size for compiler, tests etc. -->
<basepom.build.maxheap-mb>1024</basepom.build.maxheap-mb>
<basepom.build.jvmsize>${basepom.build.maxheap-mb}m</basepom.build.jvmsize>
<!-- whether a release:perform automatically pushes the created files and tags to -->
<!-- the upstream repository. Default is no. -->
<basepom.release.push-changes>false</basepom.release.push-changes>
<!-- tag name format, can be overridden by the project to provide different tags. -->
<basepom.release.tag-name-format>@{project.artifactId}-@{project.version}</basepom.release.tag-name-format>
<!-- Javadoc generation -->
<basepom.javadoc.skip>true</basepom.javadoc.skip>
<!-- Javadoc lint level -->
<basepom.javadoc.doclint>none</basepom.javadoc.doclint>
<!-- Javadoc show level: public, protected, package, private -->
<basepom.javadoc.show>public</basepom.javadoc.show>
<!-- Javadoc exclude package names -->
<basepom.javadoc.exclude-package-names />
<!-- Javadoc legacy mode -->
<basepom.javadoc.legacy-mode>false</basepom.javadoc.legacy-mode>
<!-- set surefire plugin argline arguments here -->
<basepom.test.arguments />
<!-- surefire skip tests -->
<basepom.test.skip>${skipTests}</basepom.test.skip>
<!-- surefire fork control -->
<basepom.test.fork-count>0.75C</basepom.test.fork-count>
<basepom.test.reuse-vm>true</basepom.test.reuse-vm>
<basepom.test.timeout>30</basepom.test.timeout>
<basepom.test.memory>256m</basepom.test.memory>
<!-- test groups for unit tests -->
<basepom.test.groups />
<!-- set it plugin argline arguments here -->
<basepom.it.arguments />
<!-- Integration testing -->
<basepom.it.skip>${skipITs}</basepom.it.skip>
<basepom.it.memory>${basepom.test.memory}</basepom.it.memory>
<basepom.it.fork-count>0.5C</basepom.it.fork-count>
<basepom.it.timeout>30</basepom.it.timeout>
<!-- test groups for integration tests -->
<basepom.it.groups />
<!-- Invoker plugin for integration testing -->
<basepom.invoker.folder>src/it</basepom.invoker.folder>
<!-- failsafe fork control -->
<basepom.failsafe.reuse-vm>false</basepom.failsafe.reuse-vm>
<!-- compiler warnings are treated as errors -->
<basepom.compiler.fail-warnings>false</basepom.compiler.fail-warnings>
<!-- add the parameters of methods and constructors to the class files -->
<basepom.compiler.parameters>true</basepom.compiler.parameters>
<!-- only turn on if using a non-standard-jdk compiler -->
<basepom.compiler.use-incremental-compilation>false</basepom.compiler.use-incremental-compilation>
<!-- define minimum level for pmd to fail the build -->
<basepom.pmd.fail-level>4</basepom.pmd.fail-level>
<!-- jacoco command line property. Define as empty (the plugin will overwrite that value) -->
<basepom.coverage.test-args />
<basepom.coverage.it-args />
<!-- skip deploy and / or installation -->
<basepom.install.skip>false</basepom.install.skip>
<!-- inherit from install; if install is disabled, deploy usually is as well -->
<basepom.deploy.skip>${basepom.install.skip}</basepom.deploy.skip>
<!-- Controls all the checkers run when building the project. -->
<!-- Can be activated with -Dbasepom.check.skip-all=true on the command line. -->
<basepom.check.skip-all>false</basepom.check.skip-all>
<!-- Controls the basic checkers run when building the project. -->
<basepom.check.skip-basic>${basepom.check.skip-all}</basepom.check.skip-basic>
<!-- Controls the extended checkers run when building the project. -->
<basepom.check.skip-extended>${basepom.check.skip-all}</basepom.check.skip-extended>
<!-- basic checks -->
<basepom.check.skip-enforcer>${basepom.check.skip-basic}</basepom.check.skip-enforcer>
<basepom.check.skip-dependency>${basepom.check.skip-basic}</basepom.check.skip-dependency>
<basepom.check.skip-duplicate-finder>${basepom.check.skip-basic}</basepom.check.skip-duplicate-finder>
<basepom.check.skip-dependency-management>${basepom.check.skip-basic}</basepom.check.skip-dependency-management>
<basepom.check.skip-dependency-scope>${basepom.check.skip-basic}</basepom.check.skip-dependency-scope>
<basepom.check.skip-dependency-versions-check>${basepom.check.skip-basic}</basepom.check.skip-dependency-versions-check>
<!-- extended checks -->
<basepom.check.skip-spotbugs>${basepom.check.skip-extended}</basepom.check.skip-spotbugs>
<basepom.check.skip-coverage>${basepom.check.skip-extended}</basepom.check.skip-coverage>
<!-- only enable if actually configured -->
<basepom.check.skip-pmd>true</basepom.check.skip-pmd>
<basepom.check.skip-checkstyle>true</basepom.check.skip-checkstyle>
<basepom.check.fail-all>true</basepom.check.fail-all>
<basepom.check.fail-basic>${basepom.check.fail-all}</basepom.check.fail-basic>
<basepom.check.fail-extended>${basepom.check.fail-all}</basepom.check.fail-extended>
<!-- basic checks -->
<basepom.check.fail-enforcer>${basepom.check.fail-basic}</basepom.check.fail-enforcer>
<basepom.check.fail-dependency>${basepom.check.fail-basic}</basepom.check.fail-dependency>
<basepom.check.fail-duplicate-finder>${basepom.check.fail-basic}</basepom.check.fail-duplicate-finder>
<basepom.check.fail-dependency-management>${basepom.check.fail-basic}</basepom.check.fail-dependency-management>
<basepom.check.fail-dependency-scope>${basepom.check.fail-basic}</basepom.check.fail-dependency-scope>
<basepom.check.fail-dependency-versions-check>${basepom.check.fail-basic}</basepom.check.fail-dependency-versions-check>
<basepom.check.fail-javadoc>${basepom.check.fail-basic}</basepom.check.fail-javadoc>
<!-- extended checks -->
<basepom.check.fail-spotbugs>${basepom.check.fail-extended}</basepom.check.fail-spotbugs>
<basepom.check.fail-coverage>${basepom.check.fail-extended}</basepom.check.fail-coverage>
<!-- only enable if actually configured -->
<basepom.check.fail-pmd>false</basepom.check.fail-pmd>
<basepom.check.fail-checkstyle>false</basepom.check.fail-checkstyle>
<!-- checkstyle configuration -->
<basepom.check.checkstyle-severity>error</basepom.check.checkstyle-severity>
<!-- git information -->
<basepom.git-id.skip>false</basepom.git-id.skip>
<basepom.git-id.fail-no-git>false</basepom.git-id.fail-no-git>
<basepom.git-id.fail-no-info>true</basepom.git-id.fail-no-info>
<basepom.git-id.use-native>false</basepom.git-id.use-native>
<!-- needs to run for all modules, otherwise the git specific values in the jar manifest are undefined -->
<basepom.git-id.run-only-once>false</basepom.git-id.run-only-once>
<!-- when using git-commit-id for reproducible build, this may need to be set to false -->
<basepom.git-id.skip-pom-projects>true</basepom.git-id.skip-pom-projects>
<!-- this timestamp format is compatible to project.build.outputTimestamp -->
<basepom.git-id.date-format>yyyy-MM-dd'T'HH:mm:ssXXX</basepom.git-id.date-format>
<!-- dependency management plugin -->
<basepom.dependency-management.dependencies>false</basepom.dependency-management.dependencies>
<basepom.dependency-management.plugins>false</basepom.dependency-management.plugins>
<basepom.dependency-management.allow-versions>false</basepom.dependency-management.allow-versions>
<basepom.dependency-management.allow-exclusions>false</basepom.dependency-management.allow-exclusions>
<!-- executable plugin -->
<basepom.executable.flags />
<basepom.executable.name>${project.name}</basepom.executable.name>
<!-- Some plugins can run early ("validate") or late ("verify") -->
<basepom.check.phase-dependency-versions-check>verify</basepom.check.phase-dependency-versions-check>
<basepom.check.phase-dependency-management>verify</basepom.check.phase-dependency-management>
<basepom.check.phase-dependency-scope>verify</basepom.check.phase-dependency-scope>
<basepom.check.phase-dependency>verify</basepom.check.phase-dependency>
<basepom.check.phase-checkstyle>verify</basepom.check.phase-checkstyle>
<!-- control install and deploy of artifacts -->
<basepom.at-end>false</basepom.at-end>
<basepom.at-end.install>${basepom.at-end}</basepom.at-end.install>
<basepom.at-end.deploy>${basepom.at-end}</basepom.at-end.deploy>
<!-- only report conflicts with direct dependencies -->
<basepom.dvc.direct-only>true</basepom.dvc.direct-only>
<!-- control site building -->
<basepom.site.skip>false</basepom.site.skip>
<basepom.site.skip-deploy>true</basepom.site.skip-deploy>
<basepom.site.scm.skip-deploy>true</basepom.site.scm.skip-deploy>
<basepom.site.scm.try-update>false</basepom.site.scm.try-update>
<basepom.site.scm.checkout-directory>${java.io.tmpdir}/gh-pages-publish/${project.name}</basepom.site.scm.checkout-directory>
<basepom.site.scm.comment>Site checkin for project ${project.name} (${project.version})</basepom.site.scm.comment>
<!-- path where the site is written into the remote scm -->
<basepom.site.scm.site-path>development</basepom.site.scm.site-path>
<!-- branch on the remote scm -->
<basepom.site.scm.branch>main</basepom.site.scm.branch>
<!-- the following two values must be set to use SCM site deploy -->
<basepom.site.scm.url />
<basepom.site.scm.id />
<!-- the current "minimal" version of maven -->
<basepom.maven.version>3.6.3</basepom.maven.version>
<!-- https://github.com/pmd/pmd/releases -->
<dep.pmd.version>6.55.0</dep.pmd.version>
<!-- https://github.com/checkstyle/checkstyle/releases -->
<dep.checkstyle.version>10.12.7</dep.checkstyle.version>
<!-- https://github.com/spotbugs/spotbugs/releases -->
<dep.spotbugs.version>4.8.3</dep.spotbugs.version>
<!-- https://github.com/apache/maven-dependency-analyzer/tags -->
<dep.dependency-analyzer.version>1.13.2</dep.dependency-analyzer.version>
<!-- Plugin versions, ordered like http://maven.apache.org/plugins/ -->
<!-- core plugins -->
<dep.plugin.clean.version>3.3.2</dep.plugin.clean.version>
<dep.plugin.compiler.version>3.12.1</dep.plugin.compiler.version>
<dep.plugin.deploy.version>3.1.1</dep.plugin.deploy.version>
<dep.plugin.failsafe.version>3.2.5</dep.plugin.failsafe.version>
<dep.plugin.install.version>3.1.1</dep.plugin.install.version>
<dep.plugin.resources.version>3.3.1</dep.plugin.resources.version>
<dep.plugin.site.version>4.0.0-M13</dep.plugin.site.version>
<dep.plugin.surefire.version>3.2.5</dep.plugin.surefire.version>
<!-- packaging -->
<dep.plugin.jar.version>3.3.0</dep.plugin.jar.version>
<dep.plugin.shade.version>3.5.1</dep.plugin.shade.version>
<dep.plugin.source.version>3.3.0</dep.plugin.source.version>
<!-- reporting -->
<dep.plugin.checkstyle.version>3.3.1</dep.plugin.checkstyle.version>
<dep.plugin.javadoc.version>3.6.3</dep.plugin.javadoc.version>
<dep.plugin.pmd.version>3.21.2</dep.plugin.pmd.version>
<!-- tools -->
<dep.plugin.assembly.version>3.6.0</dep.plugin.assembly.version>
<dep.plugin.dependency.version>3.6.1</dep.plugin.dependency.version>
<dep.plugin.enforcer.version>3.4.1</dep.plugin.enforcer.version>
<dep.plugin.invoker.version>3.6.0</dep.plugin.invoker.version>
<dep.plugin.release.version>3.0.1</dep.plugin.release.version>
<dep.plugin.scm.version>2.0.1</dep.plugin.scm.version>
<dep.plugin.scm-publish.version>3.2.1</dep.plugin.scm-publish.version>
<!-- https://github.com/mojohaus/build-helper-maven-plugin/releases -->
<dep.plugin.build-helper.version>3.5.0</dep.plugin.build-helper.version>
<!-- https://basepom.github.io/dependency-versions-check-maven-plugin/ -->
<dep.plugin.dependency-versions-check.version>4.0.1</dep.plugin.dependency-versions-check.version>
<!-- https://github.com/basepom/duplicate-finder-maven-plugin/releases -->
<dep.plugin.duplicate-finder.version>2.0.1</dep.plugin.duplicate-finder.version>
<!-- https://github.com/spotbugs/spotbugs-maven-plugin/releases -->
<dep.plugin.spotbugs.version>4.8.3.1</dep.plugin.spotbugs.version>
<!-- https://github.com/jacoco/jacoco/releases -->
<dep.plugin.jacoco.version>0.8.11</dep.plugin.jacoco.version>
<!-- https://github.com/basepom/maven-plugins/releases -->
<dep.plugin.property-helper.version>4.1.0</dep.plugin.property-helper.version>
<dep.plugin.dependency-management.version>1.0.3</dep.plugin.dependency-management.version>
<dep.plugin.dependency-scope.version>1.0.3</dep.plugin.dependency-scope.version>
<dep.plugin.repack.version>1.0.2</dep.plugin.repack.version>
<!-- https://github.com/git-commit-id/git-commit-id-maven-plugin/releases -->
<dep.plugin.git-commit-id.version>7.0.0</dep.plugin.git-commit-id.version>
<!-- https://github.com/brianm/really-executable-jars-maven-plugin/tags -->
<dep.plugin.really-executable.version>2.1.1</dep.plugin.really-executable.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>${dep.plugin.scm.version}</version>
<configuration>
<connectionType>developerConnection</connectionType>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${dep.plugin.deploy.version}</version>
<configuration>
<deployAtEnd>${basepom.at-end.deploy}</deployAtEnd>
<skip>${basepom.deploy.skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${dep.plugin.clean.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${dep.plugin.install.version}</version>
<configuration>
<installAtEnd>${basepom.at-end.install}</installAtEnd>
<skip>${basepom.install.skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${dep.plugin.build-helper.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${dep.plugin.enforcer.version}</version>
<configuration>
<skip>${basepom.check.skip-enforcer}</skip>
<fail>${basepom.check.fail-enforcer}</fail>
<failFast>false</failFast>
<rules>
<requireMavenVersion>
<version>[${basepom.maven.version},)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${project.build.systemJdk}</version>
</requireJavaVersion>
<!-- really enforce Java version 11+ -->
<requireJavaVersion>
<message>basepom only supports JDK version 11 and above</message>
<version>[11,)</version>
</requireJavaVersion>
</rules>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${dep.plugin.dependency.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-dependency-analyzer</artifactId>
<version>${dep.dependency-analyzer.version}</version>
</dependency>
</dependencies>
<configuration>
<skip>${basepom.check.skip-dependency}</skip>
<failOnWarning>${basepom.check.fail-dependency}</failOnWarning>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</plugin>
<!-- Tweak the compiler to use more memory and use UTF-8 for the source code. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${dep.plugin.compiler.version}</version>
<configuration>
<failOnWarning>${basepom.compiler.fail-warnings}</failOnWarning>
<release>${project.build.targetJdk}</release>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<maxmem>${basepom.build.jvmsize}</maxmem>
<showWarnings>true</showWarnings>
<useIncrementalCompilation>${basepom.compiler.use-incremental-compilation}</useIncrementalCompilation>
<parameters>${basepom.compiler.parameters}</parameters>
</configuration>
</plugin>
<!-- Resource plugins should always use UTF-8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${dep.plugin.resources.version}</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${dep.plugin.assembly.version}</version>
<configuration>
<!-- must be true for jar-with-dependencies builds -->
<appendAssemblyId>true</appendAssemblyId>
<!-- Always use GNU tar mode. -->
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${dep.plugin.surefire.version}</version>
<configuration>
<skipTests>${basepom.test.skip}</skipTests>
<argLine>@{basepom.coverage.test-args} -Xmx${basepom.test.memory} -Dfile.encoding=${project.build.sourceEncoding} ${basepom.test.arguments}</argLine>
<runOrder>random</runOrder>
<reuseForks>${basepom.test.reuse-vm}</reuseForks>
<forkCount>${basepom.test.fork-count}</forkCount>
<forkedProcessTimeoutInSeconds>${basepom.test.timeout}</forkedProcessTimeoutInSeconds>
<groups>${basepom.test.groups}</groups>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${dep.plugin.failsafe.version}</version>
<configuration>
<skipITs>${basepom.it.skip}</skipITs>
<argLine>@{basepom.coverage.it-args} -Xmx${basepom.it.memory} -Dfile.encoding=${project.build.sourceEncoding} ${basepom.it.arguments}</argLine>
<runOrder>random</runOrder>
<reuseForks>${basepom.failsafe.reuse-vm}</reuseForks>
<forkCount>${basepom.it.fork-count}</forkCount>
<forkedProcessTimeoutInSeconds>${basepom.it.timeout}</forkedProcessTimeoutInSeconds>
<groups>${basepom.it.groups}</groups>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${dep.plugin.release.version}</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<mavenExecutorId>forked-path</mavenExecutorId>
<pushChanges>${basepom.release.push-changes}</pushChanges>
<localCheckout>true</localCheckout>
<preparationGoals>clean install</preparationGoals>
<useReleaseProfile>false</useReleaseProfile>
<tagNameFormat>${basepom.release.tag-name-format}</tagNameFormat>
<goals>deploy</goals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${dep.plugin.javadoc.version}</version>
<configuration>
<skip>${basepom.javadoc.skip}</skip>
<failOnError>${basepom.check.fail-javadoc}</failOnError>
<legacyMode>${basepom.javadoc.legacy-mode}</legacyMode>
<release>${project.build.targetJdk}</release>
<source>${maven.compiler.source}</source>
<encoding>${project.build.sourceEncoding}</encoding>
<maxmemory>${basepom.build.jvmsize}</maxmemory>
<quiet>true</quiet>
<doclint>${basepom.javadoc.doclint}</doclint>
<show>${basepom.javadoc.show}</show>
<excludePackageNames>${basepom.javadoc.exclude-package-names}</excludePackageNames>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${dep.plugin.jar.version}</version>
<configuration>
<!-- do not build an empty jar if the project is
e.g. a pom project -->
<skipIfEmpty>true</skipIfEmpty>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>false</addClasspath>
</manifest>
<manifestEntries>
<X-BasePOM-Build-Id>${basepom.build.id}</X-BasePOM-Build-Id>
<X-BasePOM-Name>${project.name}</X-BasePOM-Name>
<X-BasePOM-Git-Commit-Id>${git.commit.id}</X-BasePOM-Git-Commit-Id>
</manifestEntries>
<manifestSections combine.children="append">
<manifestSection>
<name>${project.groupId}:${project.artifactId}</name>
<manifestEntries>
<!-- This is actually the time when the build was done -->
<Build-Time>${git.build.time}</Build-Time>
<!-- Git specific properties -->
<Git-Branch>${git.branch}</Git-Branch>
<Git-Commit-Id>${git.commit.id}</Git-Commit-Id>
<Git-Commit-Id-Describe>${git.commit.id.describe}</Git-Commit-Id-Describe>
<Git-Remote-Origin-Url>${git.remote.origin.url}</Git-Remote-Origin-Url>
<!-- project information -->
<Project-ArtifactId>${project.artifactId}</Project-ArtifactId>
<Project-GroupId>${project.groupId}</Project-GroupId>
<Project-Name>${project.name}</Project-Name>
<Project-Version>${project.version}</Project-Version>
</manifestEntries>
</manifestSection>
</manifestSections>
</archive>
</configuration>
</plugin>
<!-- bundle up source code into jars for both the main and the test sources -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${dep.plugin.source.version}</version>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>dependency-versions-check-maven-plugin</artifactId>
<version>${dep.plugin.dependency-versions-check.version}</version>
<configuration>
<skip>${basepom.check.skip-dependency-versions-check}</skip>
<directConflictsFailBuild>${basepom.check.fail-dependency-versions-check}</directConflictsFailBuild>
<directOnly>${basepom.dvc.direct-only}</directOnly>
</configuration>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>dependency-management-maven-plugin</artifactId>
<version>${dep.plugin.dependency-management.version}</version>
<configuration>
<skip>${basepom.check.skip-dependency-management}</skip>
<fail>${basepom.check.fail-dependency-management}</fail>
<requireManagement>
<dependencies>${basepom.dependency-management.dependencies}</dependencies>
<plugins>${basepom.dependency-management.plugins}</plugins>
<allowVersions>${basepom.dependency-management.allow-versions}</allowVersions>
<allowExclusions>${basepom.dependency-management.allow-exclusions}</allowExclusions>
</requireManagement>
</configuration>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>dependency-scope-maven-plugin</artifactId>
<version>${dep.plugin.dependency-scope.version}</version>
<configuration>
<skip>${basepom.check.skip-dependency-scope}</skip>
<fail>${basepom.check.fail-dependency-scope}</fail>
</configuration>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<version>${dep.plugin.duplicate-finder.version}</version>
<configuration>
<skip>${basepom.check.skip-duplicate-finder}</skip>
<failBuildInCaseOfConflict>${basepom.check.fail-duplicate-finder}</failBuildInCaseOfConflict>
</configuration>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${dep.plugin.spotbugs.version}</version>
<dependencies>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>${dep.spotbugs.version}</version>
</dependency>
</dependencies>
<configuration>
<effort>Max</effort>
<skip>${basepom.check.skip-spotbugs}</skip>
<maxHeap>${basepom.build.maxheap-mb}</maxHeap>
<failOnError>${basepom.check.fail-spotbugs}</failOnError>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${dep.plugin.pmd.version}</version>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${dep.pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-java</artifactId>
<version>${dep.pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-xml</artifactId>
<version>${dep.pmd.version}</version>
</dependency>
</dependencies>
<configuration>
<skip>${basepom.check.skip-pmd}</skip>
<failOnViolation>${basepom.check.fail-pmd}</failOnViolation>
<printFailingErrors>false</printFailingErrors>
<verbose>true</verbose>
<targetJdk>${project.build.targetJdk}</targetJdk>
<minimumTokens>100</minimumTokens>
<failurePriority>${basepom.pmd.fail-level}</failurePriority>
<linkXRef>false</linkXRef>
<rulesets />
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${dep.plugin.checkstyle.version}</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${dep.checkstyle.version}</version>
</dependency>
</dependencies>
<configuration>
<skip>${basepom.check.skip-checkstyle}</skip>
<failOnViolation>${basepom.check.fail-checkstyle}</failOnViolation>
<violationSeverity>${basepom.check.checkstyle-severity}</violationSeverity>
<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
<consoleOutput>true</consoleOutput>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${dep.plugin.shade.version}</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<shadedArtifactAttached>true</shadedArtifactAttached>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
</transformers>
</configuration>
</plugin>
<plugin>
<groupId>org.skife.maven</groupId>
<artifactId>really-executable-jar-maven-plugin</artifactId>
<version>${dep.plugin.really-executable.version}</version>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>repack-maven-plugin</artifactId>
<version>${dep.plugin.repack.version}</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${dep.plugin.jacoco.version}</version>
<configuration>
<skip>${basepom.check.skip-coverage}</skip>
<haltOnFailure>${basepom.check.fail-coverage}</haltOnFailure>
<propertyName>basepom.coverage.test-args</propertyName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${dep.plugin.site.version}</version>
<configuration>
<skip>${basepom.site.skip}</skip>
<skipDeploy>${basepom.site.skip-deploy}</skipDeploy>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>${dep.plugin.scm-publish.version}</version>
<configuration>
<localCheckout>true</localCheckout>
<scmBranch>${basepom.site.scm.branch}</scmBranch>
<checkoutDirectory>${basepom.site.scm.checkout-directory}</checkoutDirectory>
<tryUpdate>${basepom.site.scm.try-update}</tryUpdate>
<content>${project.reporting.outputDirectory}</content>
<subDirectory>${basepom.site.scm.site-path}</subDirectory>
<skipDeployment>${basepom.site.scm.skip-deploy}</skipDeployment>
<serverId>${basepom.site.scm.id}</serverId>
<pubScmUrl>${basepom.site.scm.url}</pubScmUrl>
<checkinComment>${basepom.site.scm.comment}</checkinComment>
</configuration>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>property-helper-maven-plugin</artifactId>
<version>${dep.plugin.property-helper.version}</version>
</plugin>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>${dep.plugin.git-commit-id.version}</version>
<configuration>
<prefix>git</prefix>
<verbose>false</verbose>
<skipPoms>${basepom.git-id.skip-pom-projects}</skipPoms>
<dateFormat>${basepom.git-id.date-format}</dateFormat>
<generateGitPropertiesFile>false</generateGitPropertiesFile>
<failOnNoGitDirectory>${basepom.git-id.fail-no-git}</failOnNoGitDirectory>
<failOnUnableToExtractRepoInfo>${basepom.git-id.fail-no-info}</failOnUnableToExtractRepoInfo>
<skip>${basepom.git-id.skip}</skip>
<abbrevLength>10</abbrevLength>
<useNativeGit>${basepom.git-id.use-native}</useNativeGit>
<gitDescribe>
<always>true</always>
<abbrev>7</abbrev>
<dirty>-dirty</dirty>
<forceLongFormat>false</forceLongFormat>
<tags>true</tags>
</gitDescribe>
<runOnlyOnce>${basepom.git-id.run-only-once}</runOnlyOnce>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>${dep.plugin.invoker.version}</version>
<configuration>
<skipInvocation>${basepom.it.skip}</skipInvocation>
<skipInstallation>${basepom.it.skip}</skipInstallation>
<parallelThreads>${basepom.it.fork-count}</parallelThreads>
<projectsDirectory>${basepom.invoker.folder}</projectsDirectory>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
</pomIncludes>
<preBuildHookScript>setup</preBuildHookScript>
<postBuildHookScript>verify</postBuildHookScript>
<localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
<settingsFile>${basepom.invoker.folder}/settings.xml</settingsFile>
<timeoutInSeconds>${basepom.it.timeout}</timeoutInSeconds>
<goals>
<goal>clean</goal>
<goal>package</goal>
</goals>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!-- This is the list of plugins used for the main build. -->
<plugins>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>validate</phase>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>property-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<goals>
<goal>get</goal>
</goals>
<phase>validate</phase>
<configuration>
<uuids>
<uuid>
<id>basepom.build.id</id>
<export>true</export>
</uuid>
<uuid>
<id>basepom.shaded.id</id>
<export>true</export>
</uuid>
</uuids>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<!-- Always build a jar with the test classes -->
<execution>
<id>basepom.default</id>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>package</phase>
<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-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>${basepom.check.phase-dependency}</phase>
<goals>
<goal>analyze-only</goal>
<goal>analyze-duplicate</goal>
<goal>analyze-dep-mgt</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>dependency-versions-check-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>${basepom.check.phase-dependency-versions-check}</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>dependency-management-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>${basepom.check.phase-dependency-management}</phase>
<goals>
<goal>analyze</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>dependency-scope-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>${basepom.check.phase-dependency-scope}</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>${basepom.check.phase-checkstyle}</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default</id>
<phase>process-test-classes</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<executions>
<execution>
<id>basepom.default-site</id>
<phase>site-deploy</phase>
<goals>
<goal>publish-scm</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>basepom.invoker-integration-testing</id>
<activation>
<file>
<!-- An integration testing folder exists for the invoker plugin. -->
<exists>src/it</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.default-it</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>basepom.coverage.it-args</propertyName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<executions>
<execution>
<id>basepom.invoker-integration-testing.default</id>
<phase>integration-test</phase>
<goals>
<goal>install</goal>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>basepom.executable</id>
<activation>
<file>
<exists>${basedir}/.build-executable</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>basepom.executable.default</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.skife.maven</groupId>
<artifactId>really-executable-jar-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.executable.default</id>
<phase>package</phase>
<goals>
<goal>really-executable-jar</goal>
</goals>
<configuration>
<classifier>shaded</classifier>
<flags>${basepom.executable.flags}</flags>
<programFile>${basepom.executable.name}</programFile>
<attachProgramFile>true</attachProgramFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>basepom.repack</id>
<activation>
<file>
<exists>${basedir}/.repack-executable</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>repack-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.repack.default</id>
<phase>package</phase>
<goals>
<goal>repack</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.skife.maven</groupId>
<artifactId>really-executable-jar-maven-plugin</artifactId>
<executions>
<execution>
<id>basepom.repack.default</id>
<phase>package</phase>
<goals>
<goal>really-executable-jar</goal>
</goals>
<configuration>
<classifier>repacked</classifier>
<flags>${basepom.executable.flags}</flags>
<programFile>${basepom.executable.name}</programFile>
<attachProgramFile>true</attachProgramFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>