basepom-foundation
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.basepom</groupId> <artifactId>basepom-foundation</artifactId> <version>55</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>55</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 /> <!-- 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> <!-- 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.0</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.2</dep.checkstyle.version> <!-- https://github.com/spotbugs/spotbugs/releases --> <dep.spotbugs.version>4.7.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.1</dep.plugin.clean.version> <dep.plugin.compiler.version>3.11.0</dep.plugin.compiler.version> <dep.plugin.deploy.version>3.1.1</dep.plugin.deploy.version> <dep.plugin.failsafe.version>3.1.2</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-M9</dep.plugin.site.version> <dep.plugin.surefire.version>3.1.2</dep.plugin.surefire.version> <!-- packaging --> <dep.plugin.jar.version>3.3.0</dep.plugin.jar.version> <dep.plugin.shade.version>3.5.0</dep.plugin.shade.version> <dep.plugin.source.version>3.3.0</dep.plugin.source.version> <!-- reporting --> <dep.plugin.checkstyle.version>3.3.0</dep.plugin.checkstyle.version> <dep.plugin.javadoc.version>3.5.0</dep.plugin.javadoc.version> <dep.plugin.pmd.version>3.21.0</dep.plugin.pmd.version> <!-- tools --> <dep.plugin.assembly.version>3.6.0</dep.plugin.assembly.version> <dep.plugin.dependency.version>3.6.0</dep.plugin.dependency.version> <dep.plugin.enforcer.version>3.3.0</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.4.0</dep.plugin.build-helper.version> <!-- https://basepom.github.io/dependency-versions-check-maven-plugin/ --> <dep.plugin.dependency-versions-check.version>4.0.0</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.7.3.5</dep.plugin.spotbugs.version> <!-- https://github.com/jacoco/jacoco/releases --> <dep.plugin.jacoco.version>0.8.10</dep.plugin.jacoco.version> <!-- https://github.com/basepom/maven-plugins/releases --> <dep.plugin.property-helper.version>3.1.1</dep.plugin.property-helper.version> <dep.plugin.dependency-management.version>1.0.1</dep.plugin.dependency-management.version> <dep.plugin.dependency-scope.version>1.0.1</dep.plugin.dependency-scope.version> <dep.plugin.repack.version>1.0.0</dep.plugin.repack.version> <!-- https://github.com/git-commit-id/git-commit-id-maven-plugin/releases --> <dep.plugin.git-commit-id.version>6.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> <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> <skipDeployement>${basepom.site.scm.skip-deploy}</skipDeployement> <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> <dateFormat>yyyy-MM-dd'T'HH:mm:ssZZ</dateFormat> <verbose>false</verbose> <skipPoms>true</skipPoms> <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>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>io.github.git-commit-id</groupId> <artifactId>git-commit-id-maven-plugin</artifactId> <executions> <execution> <id>basepom.default</id> <phase>initialize</phase> <goals> <goal>revision</goal> </goals> </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>