central-publishing-maven-plugin
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.mavenplugins</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>1.2.0</version>
</dependency><?xml version="1.0" encoding="UTF-8" standalone="no"?><!--
Copyright (c) 2022-present Sonatype, Inc. All rights reserved.
"Sonatype" is a trademark of Sonatype, Inc.
--><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>io.github.mavenplugins</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>1.2.0</version>
<packaging>maven-plugin</packaging>
<name>Central Publishing Maven Plugin</name>
<description>
This project is a maven plugin for publishing components in Maven Central, for more details
on its usage see https://central.sonatype.org/publish/publish-portal-maven
</description>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Sonatype, Inc.</name>
<organization>Sonatype, Inc.</organization>
<organizationUrl>https://www.sonatype.com</organizationUrl>
</developer>
<developer>
<name>io.github.mavenplugins</name>
<url>https://github.com/mavenplugins/central-publishing-maven-plugin/graphs/contributors</url>
<organization>io.github.mavenplugins</organization>
<organizationUrl>https://github.com/mavenplugins/</organizationUrl>
</developer>
</developers>
<scm>
<!-- <url>https://github.com/sonatype/central-publishing-maven-plugin</url> -->
<url>https://github.com/mavenplugins/central-publishing-maven-plugin</url>
<connection>scm:git:https://github.com/mavenplugins/central-publishing-maven-plugin.git</connection>
<developerConnection>scm:git:https://github.com/mavenplugins/central-publishing-maven-plugin.git</developerConnection>
<tag>v1.2.0</tag>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/mavenplugins/central-publishing-maven-plugin/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/mavenplugins/central-publishing-maven-plugin/actions/</url>
<!--
<notifiers>
<notifier>
<type>mail</type>
<configuration>
<address>notifications@maven.apache.org</address>
</configuration>
</notifier>
</notifiers>
-->
</ciManagement>
<url>https://github.com/mavenplugins/central-publishing-maven-plugin</url>
<parent>
<groupId>org.sonatype.buildsupport</groupId>
<artifactId>buildsupport</artifactId>
<version>32</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.showDeprecation>false</maven.compiler.showDeprecation>
<maven.compiler.showWarnings>true</maven.compiler.showWarnings>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.9.11</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.15.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>3.9.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>com.github.package-url</groupId>
<artifactId>packageurl-java</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.5.0-jre</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.20.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-client-java</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.16.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.5</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-client-java</artifactId>
<version>5.15.0</version>
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<writeJunitReport>true</writeJunitReport>
<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>src/it/settings.xml</settingsFile>
<properties>
<centralBaseUrl>http://localhost:${mockcentral.port}</centralBaseUrl>
<centralSnapshotsUrl>http://localhost:${mockcentral.port}/snapshots/</centralSnapshotsUrl>
</properties>
<goals>
<goal>deploy</goal>
</goals>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>install</goal>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<version>2.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.8.2</version>
<configuration>
<goalPrefix>central-publishing</goalPrefix>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<portNames>
<portName>mockcentral.port</portName>
</portNames>
</configuration>
<executions>
<execution>
<id>reserve-network-port</id>
<goals>
<goal>reserve-network-port</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.48.0</version>
<configuration>
<logDate>ISO8601</logDate>
<verbose>false</verbose>
<!-- set to true for logging requests -->
<showLogs>false</showLogs>
<images>
<image>
<alias>mockcentral</alias>
<name>mockserver/mockserver:5.15.0</name>
<run>
<namingStrategy>alias</namingStrategy>
<ports>
<port>${mockcentral.port}:1080</port>
</ports>
<wait>
<http>
<url>http://localhost:${mockcentral.port}</url>
<!-- 404 means that the mockserver is running, just not accepting the request -->
<status>404</status>
</http>
<time>10000</time>
</wait>
</run>
</image>
</images>
</configuration>
<executions>
<execution>
<id>start</id>
<goals>
<goal>start</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
<execution>
<id>stop</id>
<goals>
<goal>stop</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>mockserver-config</id>
<phase>pre-integration-test</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.sonatype.central.publisher.plugin.mockserver.MockserverConfiguration</mainClass>
<cleanupDaemonThreads>false</cleanupDaemonThreads>
<arguments>
<argument>${mockcentral.port}</argument>
</arguments>
<classpathScope>test</classpathScope>
<stopUnresponsiveDaemonThreads>true</stopUnresponsiveDaemonThreads>
<daemonThreadJoinTimeout>5000</daemonThreadJoinTimeout>
</configuration>
</plugin>
<plugin>
<!-- see developer-documentation/development/formatting.md -->
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.46.1</version>
<configuration>
<!-- Note: On CI ratchetFrom requires 'git fetch origin master' to be performed at least once. -->
<!-- <ratchetFrom>origin/master</ratchetFrom> -->
<formats>
<format>
<includes>
<include>*.java</include>
</includes>
<excludes>
<exclude>target/generated-sources/**/*.java</exclude>
</excludes>
<trimTrailingWhitespace/>
<endWithNewline/>
</format>
</formats>
<java>
<removeUnusedImports/>
<importOrder>
<file>${basedir}/sonatype/codestyle/sonatype-eclipse-imports.importorder</file>
</importOrder>
<eclipse>
<file>${basedir}/sonatype/codestyle/sonatype-eclipse.xml</file>
</eclipse>
</java>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.sonatype.clm</groupId>
<artifactId>clm-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>index</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<executions>
<execution>
<goals>
<goal>generate-metadata</goal>
<goal>generate-test-metadata</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>descriptor</goal>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- The default behavior is to run the check goal. -->
<!-- Perform 'mvn spotless:apply' manually on demand. -->
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<executions>
<execution>
<!-- Runs in compile phase to fail early in case of formatting issues. -->
<id>spotless-check</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- IT profile for running ALL ITs, will spin up docker container of mockserver, configured to respond as though
it was central, as well as using a random port for the exposed port from the docker container -->
<profile>
<id>run-its</id>
<build>
<plugins>
<!-- don't forget that plugin ordering is very important
- get free port # (build-helper-maven-plugin)
- startup mockserver docker container (docker-maven-plugin)
- execute the java class to configure mockserver (exec-maven-pluign)
- and finally run the ITs (maven-invoker-plugin) -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<!-- IT profile for running only ITs that require the docker container to be running, will spin up docker container
of mockserver, configured to respond as though it was central, as well as using a random port for the exposed
port from the docker container -->
<profile>
<id>run-publish-its</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
<!-- don't forget that plugin ordering is very important
- get free port # (build-helper-maven-plugin)
- startup mockserver docker container (docker-maven-plugin)
- execute the java class to configure mockserver (exec-maven-pluign)
- and finally run the ITs (maven-invoker-plugin) -->
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<pomIncludes>
<pomInclude>publish*/pom.xml</pomInclude>
</pomIncludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- IT profile for running only ITs that do NOT require the docker container to be running -->
<profile>
<id>run-bundle-its</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<pomIncludes>
<pomInclude>bundle*/pom.xml</pomInclude>
</pomIncludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>publish</id>
<build>
<plugins>
<!-- included to disable inherited nexus-staging-maven-plugin execution -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.7.0</version>
<extensions>true</extensions>
<configuration>
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- use our own just built version -->
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<id>deploy-artifacts</id>
<phase>deploy</phase>
<goals>
<goal>publish</goal>
</goals>
</execution>
</executions>
<extensions>true</extensions>
<configuration>
<publishingServerId>publisher</publishingServerId>
<deploymentName>Central Publishing Maven Plugin - ${project.version}</deploymentName>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- ======================================== -->
<!-- mavenplugins configuration for GitHub CI -->
<!-- ======================================== -->
<profile>
<id>mavenplugins-config</id>
<activation>
<file>
<exists>mvn-active-profiles/mavenplugins-config-profile.txt</exists>
</file>
</activation>
<properties>
<organization.nameHostingNexus>Sonatype Central Portal</organization.nameHostingNexus>
<organization.baseNexusURL>https://central.sonatype.com</organization.baseNexusURL>
<organization.snapshotNexusURL>${organization.baseNexusURL}/repository/maven-snapshots/</organization.snapshotNexusURL>
<organization.commonNexusRepoId>organization_nexus</organization.commonNexusRepoId>
<organization.snapshotNexusRepoId>${organization.commonNexusRepoId}</organization.snapshotNexusRepoId>
<organization.releaseNexusRepoId>${organization.commonNexusRepoId}</organization.releaseNexusRepoId>
<organization.stagingServerId>${organization.releaseNexusRepoId}</organization.stagingServerId>
<organization.stagingNexusURL>
https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/</organization.stagingNexusURL>
<!-- Override Sonatype parent properties for distribution -->
<public.serverId>${organization.commonNexusRepoId}</public.serverId>
<public.nexusUrl>https://repository.sonatype.org</public.nexusUrl>
<public-release.serverId>${organization.stagingServerId}</public-release.serverId>
<public-release.url>${organization.stagingNexusURL}</public-release.url>
<public-snapshot.serverId>${organization.snapshotNexusRepoId}</public-snapshot.serverId>
<public-snapshot.url>${organization.snapshotNexusURL}</public-snapshot.url>
<!-- Note: Override javadoc.doclint if required. This must be set for JAVADOC >= 8 only! -->
<javadoc.doclint/>
<!-- Plugin configuration properties -->
<skip.attach-sources>false</skip.attach-sources>
<!-- Note: Overwrite <phase.attach-javadocs> with none or empty value, if attached-javadocs must be skipped -->
<phase.attach-javadocs>package</phase.attach-javadocs>
<skip.gpg.signing>true</skip.gpg.signing>
<!-- Maven Toolchain -->
<toolchain.executionEnablePhase>validate</toolchain.executionEnablePhase>
<toolchain.executionDisablePhase>_NEVER_</toolchain.executionDisablePhase>
<toolchain.executionPhase>${toolchain.executionDisablePhase}</toolchain.executionPhase>
<!-- Note: toolchain.jdkVersion is empty by default. It is supposed to be either set by profile 'toolchain'
below, by -D option via MAVEN_OPTS, on mvn commandline or by settings.xml -->
<toolchain.jdkVersion/>
<!-- Sonatype staging -->
<!-- staging.autoPublish: should be set to false for testing on release version deployments. -->
<staging.autoPublish>true</staging.autoPublish>
<staging.dropValidated>false</staging.dropValidated>
<staging.publishPhase>deploy</staging.publishPhase>
<!-- Maximum amount of seconds to waitUntil a state has been reached. Cannot be less than 1800 seconds. -->
<staging.progressTimeoutSeconds>1817</staging.progressTimeoutSeconds>
<!-- Amount of seconds between intervals before checking if a state has been reached. Cannot be less then 5
seconds. -->
<staging.progressPauseDurationSeconds>6</staging.progressPauseDurationSeconds>
<!-- The plugin can wait until certain states have been reached.
This can be useful if it's required to run a deployment async. The following states can be waited for:
- published:
Wait until the deployment is uploaded, validated and published.
Failures from upload, validation or publishing will be in the console result output.
- uploaded:
Wait until the deployment bundle has been uploaded to the central URL.
Only upload failures will be reported, any validation failures will have to be checked separately
(i.e. on https://central.sonatype.com).
- validated:
Wait until the deployment bundle has been uploaded and validated.
Failures from upload and validation will be in the console result output. -->
<staging.waitUntilValidatedState>validated</staging.waitUntilValidatedState>
<staging.waitUntilPublishedState>published</staging.waitUntilPublishedState>
<staging.waitUntil>${staging.waitUntilPublishedState}</staging.waitUntil>
<!-- Apache Maven Plugin versions -->
<version.maven-compiler-plugin>3.12.1</version.maven-compiler-plugin>
<version.maven-javadoc-plugin>3.12.0</version.maven-javadoc-plugin>
<version.maven-toolchains-plugin>3.2.0</version.maven-toolchains-plugin>
<version.maven-plugin-report-plugin>4.0.0-beta-1</version.maven-plugin-report-plugin>
<version.maven-project-info-reports-plugin>3.9.0</version.maven-project-info-reports-plugin>
<version.maven-site-plugin>3.21.0</version.maven-site-plugin>
<!-- Sonatype Maven Central Publishing Plugin GAVs -->
<groupId.central-publishing-maven-plugin.released>io.github.mavenplugins</groupId.central-publishing-maven-plugin.released>
<version.central-publishing-maven-plugin.released>1.1.0</version.central-publishing-maven-plugin.released>
<groupId.central-publishing-maven-plugin.forStaging>${groupId.central-publishing-maven-plugin.released}</groupId.central-publishing-maven-plugin.forStaging>
<version.central-publishing-maven-plugin.forStaging>${version.central-publishing-maven-plugin.released}</version.central-publishing-maven-plugin.forStaging>
<!-- Unleash plugins related config -->
<groupId.unleash.common>io.github.mavenplugins</groupId.unleash.common>
<!-- Unleash Maven Plugin -->
<groupId.unleash-maven-plugin>${groupId.unleash.common}</groupId.unleash-maven-plugin>
<artifactId.unleash-maven-plugin>unleash-maven-plugin</artifactId.unleash-maven-plugin>
<version.unleash-maven-plugin>3.3.3</version.unleash-maven-plugin>
<!-- Unleash SCM Provider -->
<groupId.unleash-scm-provider>${groupId.unleash.common}</groupId.unleash-scm-provider>
<groupId.unleash-scm-provider-git>${groupId.unleash-scm-provider}</groupId.unleash-scm-provider-git>
<artifactId.unleash-scm-provider-git>unleash-scm-provider-git</artifactId.unleash-scm-provider-git>
<version.unleash-scm-provider-git>3.3.1</version.unleash-scm-provider-git>
<groupId.unleash-scm-provider-svn>${groupId.unleash-scm-provider}</groupId.unleash-scm-provider-svn>
<artifactId.unleash-scm-provider-svn>unleash-scm-provider-svn</artifactId.unleash-scm-provider-svn>
<version.unleash-scm-provider-svn>3.0.2</version.unleash-scm-provider-svn>
<!-- Unleash CDI Plugin Hooks -->
<groupId.cdi-plugin-hooks>${groupId.unleash.common}</groupId.cdi-plugin-hooks>
<artifactId.cdi-plugin-hooks>cdi-plugin-hooks</artifactId.cdi-plugin-hooks>
<version.cdi-plugin-hooks>0.2.2</version.cdi-plugin-hooks>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>${version.maven-toolchains-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.maven-compiler-plugin}</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<debug>true</debug>
<!-- <fork>true</fork> -->
<!-- <compilerArgument>${maven.compiler.compilerArgument}</compilerArgument> -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${version.maven-javadoc-plugin}</version>
<configuration>
<!-- Prevent javadoc lint warnings from failing builds -->
<doclint>${javadoc.doclint}</doclint>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-report-plugin</artifactId>
<version>${version.maven-plugin-report-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${version.maven-project-info-reports-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${version.maven-site-plugin}</version>
<configuration>
<relativizeSiteLinks>false</relativizeSiteLinks>
</configuration>
</plugin>
<plugin>
<groupId>${groupId.unleash-maven-plugin}</groupId>
<artifactId>${artifactId.unleash-maven-plugin}</artifactId>
<version>${version.unleash-maven-plugin}</version>
<dependencies>
<dependency>
<groupId>${groupId.unleash-scm-provider-git}</groupId>
<artifactId>${artifactId.unleash-scm-provider-git}</artifactId>
<version>${version.unleash-scm-provider-git}</version>
</dependency>
<dependency>
<groupId>${groupId.cdi-plugin-hooks}</groupId>
<artifactId>${artifactId.cdi-plugin-hooks}</artifactId>
<version>${version.cdi-plugin-hooks}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- included to disable inherited nexus-staging-maven-plugin execution -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.7.0</version>
<extensions>true</extensions>
<configuration>
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<phase>${toolchain.executionPhase}</phase>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>${toolchain.jdkVersion}</version>
</jdk>
</toolchains>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<skipSource>${skip.attach-sources}</skipSource>
</configuration>
<executions>
<execution>
<id>default</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>${phase.attach-javadocs}</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-report-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</profile>
<!-- ====================================================== -->
<!-- mavenplugins deploy and release profiles for GitHub CI -->
<!-- ====================================================== -->
<!--
Turn off strict javadoc checks in Java-8+.
-->
<profile>
<id>mavenplugins-javadoc-java8</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<javadoc.doclint>none</javadoc.doclint>
</properties>
</profile>
<profile>
<id>mavenplugins-toolchain</id>
<!-- Toolchain profile: Activated if SysEnv variable MAVEN_TOOLCHAIN_VERSION is defined. -->
<activation>
<property>
<name>env.MAVEN_TOOLCHAIN_VERSION</name>
</property>
</activation>
<properties>
<toolchain.executionPhase>${toolchain.executionEnablePhase}</toolchain.executionPhase>
<toolchain.jdkVersion>${env.MAVEN_TOOLCHAIN_VERSION}</toolchain.jdkVersion>
</properties>
</profile>
<!-- Signing profile: Activated if SysEnv variable OSSRH_GPG_PASSPHRASE is defined. -->
<!-- Note: This profile requires the following <server> node being defined in settings.xml: -->
<!-- <servers>
<server>
<id>gpg.passphrase</id>
<passphrase>${env.OSSRH_GPG_PASSPHRASE}</passphrase>
</server>
</servers> -->
<profile>
<id>mavenplugins-signing</id>
<activation>
<property>
<name>env.OSSRH_GPG_PASSPHRASE</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<skip>${skip.gpg.signing}</skip>
<!-- since gpg2, pinentry mode has to be set to loopback for unattended passphrase usage -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>mavenplugins-DO_NOT_RELEASE_SONATYPE_STAGING</id>
<!-- The order of profiles 'DO_NOT_RELEASE_SONATYPE_STAGING' and 'IS_SNAPSHOT_VERSION' matters! Profile
'IS_SNAPSHOT_VERSION' must overrule profile 'DO_NOT_RELEASE_SONATYPE_STAGING'! -->
<activation>
<property>
<name>env.DO_NOT_RELEASE_SONATYPE_STAGING</name>
<value>true</value>
</property>
</activation>
<properties>
<staging.autoPublish>false</staging.autoPublish>
<staging.dropValidated>true</staging.dropValidated>
<staging.waitUntil>${staging.waitUntilValidatedState}</staging.waitUntil>
<version.central-publishing-maven-plugin.forStaging>${project.version}</version.central-publishing-maven-plugin.forStaging>
</properties>
</profile>
<profile>
<id>mavenplugins-IS_SNAPSHOT_VERSION</id>
<activation>
<property>
<name>env.IS_SNAPSHOT_VERSION</name>
<value>true</value>
</property>
</activation>
<properties>
<staging.autoPublish>false</staging.autoPublish>
<staging.dropValidated>false</staging.dropValidated>
<staging.waitUntil>${staging.waitUntilValidatedState}</staging.waitUntil>
<organization.stagingServerId>${organization.snapshotNexusRepoId}</organization.stagingServerId>
<groupId.central-publishing-maven-plugin.forStaging>${project.groupId}</groupId.central-publishing-maven-plugin.forStaging>
<version.central-publishing-maven-plugin.forStaging>${project.version}</version.central-publishing-maven-plugin.forStaging>
</properties>
</profile>
<profile>
<id>mavenplugins-IS_UNLEASH_BUILD</id>
<activation>
<property>
<name>env.IS_UNLEASH_BUILD</name>
<value>true</value>
</property>
</activation>
<properties>
<version.central-publishing-maven-plugin.forStaging>${version.central-publishing-maven-plugin.released}</version.central-publishing-maven-plugin.forStaging>
</properties>
</profile>
<profile>
<id>mavenplugins-staging</id>
<activation>
<property>
<name>env.OSSRH_USERNAME</name>
</property>
</activation>
<properties>
<skip.gpg.signing>false</skip.gpg.signing>
</properties>
<build>
<plugins>
<plugin>
<!-- We have to explicitly skip maven-deploy-plugin execution, since central-publishing-maven-plugin
does NOT disable this in case we define explicit executions for central-publishing-maven-plugin! -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>${groupId.central-publishing-maven-plugin.forStaging}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${version.central-publishing-maven-plugin.forStaging}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>${organization.stagingServerId}</publishingServerId>
<centralBaseUrl>${organization.baseNexusURL}</centralBaseUrl>
<centralSnapshotsUrl>${organization.snapshotNexusURL}</centralSnapshotsUrl>
<deploymentName>${project.groupId}:${project.artifactId}:${project.version}</deploymentName>
<failOnBuildFailure>true</failOnBuildFailure>
<ignorePublishedComponents>false</ignorePublishedComponents>
<!-- Maximum amount of seconds to waitUntil a state has been reached. Cannot be less than 1800 seconds. -->
<waitMaxTime>${staging.progressTimeoutSeconds}</waitMaxTime>
<waitPollingInterval>${staging.progressPauseDurationSeconds}</waitPollingInterval>
<!-- The plugin can wait until certain states have been reached.
This can be useful if it's required to run a deployment async. The following states can be waited for:
published, uploaded, validated -->
<waitUntil>${staging.waitUntil}</waitUntil>
<autoPublish>${staging.autoPublish}</autoPublish>
<dropValidated>${staging.dropValidated}</dropValidated>
<checksums>all</checksums>
</configuration>
<executions>
<!-- Note: We have to define the default-publish explicitly here, since there might be other optional
executions in future. This is required, since central-publishing-maven-plugin does not perform
the default-publish, if there is an explicit execution defined! -->
<execution>
<id>default-publish</id>
<phase>${staging.publishPhase}</phase>
<goals>
<goal>publish</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>