blob: 77512504387760e0430283fda865887a83d243e0 [file]
<?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. See accompanying LICENSE file.
-->
<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>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>39</version>
<relativePath />
</parent>
<groupId>org.apache.hadoop</groupId>
<artifactId>cloudstore</artifactId>
<version>1.6</version>
<packaging>jar</packaging>
<name>hadoop cloudstore</name>
<url>https://org.apache.hadoop/cloudstore</url>
<description>
Cloud Store operations, targeting Hadoop 3.4.0+.
</description>
<scm>
<connection>scm:git:https://github.com/apache/hadoop-cloudstore.git</connection>
<developerConnection>scm:git:https://github.com/apache/hadoop-cloudstore.git</developerConnection>
<url>https://github.com/apache/hadoop-cloudstore</url>
</scm>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<file.encoding>UTF-8</file.encoding>
<javac.version>1.8</javac.version>
<enforced.java.version>${javac.version}</enforced.java.version>
<test.build.dir>${project.build.directory}/test-dir</test.build.dir>
<test.build.data>${test.build.dir}</test.build.data>
<!-- Most recently released cloudstore version: the version users
download. Independent of ${project.version}, which moves through
X.Y-SNAPSHOT cycles during development. Bumped by
dev-support/update-site-docs.sh in lockstep with the markdown
references to cloudstore-X.Y.jar; the verify-phase
check-doc-versions execution below uses it to detect drift. -->
<cloudstore.docs.version>1.6</cloudstore.docs.version>
<!-- GPG signing key id; override on the command line with
-Dgpg.keyName=<keyid>. Empty default lets gpg pick the default
secret key when -Psign is active. -->
<gpg.keyName></gpg.keyName>
<!-- keep sorted -->
<apache-rat-plugin.version>0.18</apache-rat-plugin.version>
<assertj.version>3.27.7</assertj.version>
<avro.version>1.11.5</avro.version>
<awsv2sdk.version>2.29.52</awsv2sdk.version>
<!-- last version of checkstyle to run on Java 17-->
<checkstyle.version>12.3.1</checkstyle.version>
<checksum-maven-plugin.version>1.11</checksum-maven-plugin.version>
<cyclonedx.schema.version>1.6</cyclonedx.schema.version>
<doxia-module-markdown.version>1.12.0</doxia-module-markdown.version>
<gcs-connector.version>hadoop3-2.2.4</gcs-connector.version>
<hadoop.version>3.4.2</hadoop.version>
<junit.version>4.13.2</junit.version>
<!-- Add maven build version dependencies here, in order, prefixed with maven -->
<maven-assembly-plugin.version>3.8.0</maven-assembly-plugin.version>
<maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version>
<maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version>
<maven-cyclonedx-plugin.version>2.9.3</maven-cyclonedx-plugin.version>
<maven-enforcer-plugin.version>3.6.3</maven-enforcer-plugin.version>
<maven-exec-plugin.version>3.6.3</maven-exec-plugin.version>
<maven-failsafe-plugin.version>${maven-surefire-plugin.version}</maven-failsafe-plugin.version>
<maven-fluido-skin.version>1.11.1</maven-fluido-skin.version>
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
<maven-jar-plugin.version>3.5.1</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
<maven-plugin-build-helper.version>3.6.1</maven-plugin-build-helper.version>
<!-- 3.5.0 is the last Doxia-1.x-compatible release -->
<maven-project-info-reports-plugin.version>3.9.0</maven-project-info-reports-plugin.version>
<!-- pinned: 4.x (M-releases only) requires Doxia 2. -->
<maven-site-plugin.version>3.12.1</maven-site-plugin.version>
<maven-source-plugin.version>3.4.0</maven-source-plugin.version>
<maven-spotless-plugin.version>3.10.0</maven-spotless-plugin.version>
<maven-surefire-plugin.version>3.5.6</maven-surefire-plugin.version>
<maven-surefire-report-plugin.version>${maven-surefire-plugin.version}</maven-surefire-report-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion><groupId>com.github.pjfanning</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>com.google.code.gson</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>com.google.re2j</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>com.jcraft</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>org.apache.curator</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>org.apache.zookeeper</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>com.github.luben</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>org.apache.avro</groupId><artifactId>*</artifactId></exclusion>
<exclusion><groupId>org.apache.assertj</groupId><artifactId>*</artifactId></exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
<scope>test</scope>
<exclusions>
<exclusion><groupId>*</groupId><artifactId>*</artifactId></exclusion>
</exclusions>
</dependency>
<!-- HDFS for the MiniDFSCluster-backed contract tests. Both the regular
jar (DistributedFileSystem) and the test-jar (MiniDFSCluster +
HDFSContract) are needed. Test scope only — production code never
pulls in HDFS server bits. -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<scope>test</scope>
<exclusions>
<exclusion><groupId>org.fusesource.leveldbjni</groupId><artifactId>*</artifactId></exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<type>test-jar</type>
<scope>test</scope>
<exclusions>
<exclusion><groupId>*</groupId><artifactId>*</artifactId></exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-cloud-storage</artifactId>
<version>${hadoop.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-azure-datalake</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion><groupId>org.apache.hadoop</groupId><artifactId>hadoop-aliyun</artifactId></exclusion>
<exclusion><groupId>org.apache.hadoop</groupId><artifactId>hadoop-cos</artifactId></exclusion>
<exclusion><groupId>org.apache.hadoop</groupId><artifactId>hadoop-huaweicloud</artifactId></exclusion>
<exclusion><groupId>org.apache.hadoop</groupId><artifactId>hadoop-tos</artifactId></exclusion>
<exclusion><groupId>com.microsoft</groupId><artifactId>*</artifactId></exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<version>${hadoop.version}</version>
<artifactId>hadoop-mapreduce-client-jobclient</artifactId>
<scope>provided</scope>
</dependency>
<!--
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>${hadoop.version}</version>
<scope>provided</scope>
</dependency>
-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.cloud.bigdataoss/gcs-connector -->
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>gcs-connector</artifactId>
<version>${gcs-connector.version}</version>
<scope>provided</scope>
<classifier>shaded</classifier>
<!-- who doesn't get that shaded means no dependencies?-->
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bundle</artifactId>
<version>${awsv2sdk.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<profiles>
<!-- latest hadoop release -->
<profile>
<id>latest</id>
<properties>
<hadoop.version>3.5.0</hadoop.version>
</properties>
</profile>
<!-- next hadoop release -->
<profile>
<id>next</id>
<properties>
<hadoop.version>3.6.0-SNAPSHOT</hadoop.version>
</properties>
</profile>
<profile>
<id>trunk</id>
<activation>
<property>
<name>trunk</name>
</property>
</activation>
<properties>
<hadoop.version>3.6.0-SNAPSHOT</hadoop.version>
</properties>
</profile>
<profile>
<id>client</id>
<dependencies>
<!-- this is here to force a dependency -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-api</artifactId>
<version>${hadoop.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>release</id>
<properties>
<!-- Kept in sync with HEAD's commit time by dev-support/bump-version.sh -->
<project.build.outputTimestamp>2026-08-27T15:23:49Z</project.build.outputTimestamp>
</properties>
<build>
<plugins>
<!-- Emit a CycloneDX SBOM alongside the release jar.
compile scope only: provided/test deps (Hadoop, AWS SDK,
GCS, junit, hdfs) are intentionally excluded because they
are not shipped inside the jar - they come from the host
Hadoop install or the test classpath.
see: https://github.com/CycloneDX/cyclonedx-maven-plugin
Note that warnings are printed about JSON validity; ignore these.
-->
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${maven-cyclonedx-plugin.version}</version>
<executions>
<execution>
<id>sbom-release</id>
<phase>package</phase>
<goals>
<goal>makeBom</goal>
</goals>
<configuration>
<projectType>library</projectType>
<schemaVersion>${cyclonedx.schema.version}</schemaVersion>
<includeCompileScope>false</includeCompileScope>
<includeProvidedScope>false</includeProvidedScope>
<includeRuntimeScope>false</includeRuntimeScope>
<includeSystemScope>false</includeSystemScope>
<includeTestScope>false</includeTestScope>
<outputFormat>all</outputFormat>
<outputName>${project.artifactId}-${project.version}-cyclonedx</outputName>
</configuration>
</execution>
</executions>
</plugin>
<!-- Emit SHA-256 checksums alongside the release jar, SBOM, and
(with -Passembly also active) the source tarball. -->
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>${checksum-maven-plugin.version}</version>
<executions>
<execution>
<id>release-artifact-checksums</id>
<phase>verify</phase>
<goals>
<goal>files</goal>
</goals>
<configuration>
<algorithms>
<algorithm>SHA-256</algorithm>
</algorithms>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>${project.artifactId}-${project.version}.jar</include>
<include>${project.artifactId}-${project.version}-src.tar.gz</include>
<include>${project.artifactId}-${project.version}-cyclonedx.json</include>
<include>${project.artifactId}-${project.version}-cyclonedx.xml</include>
</includes>
</fileSet>
</fileSets>
<csvSummary>false</csvSummary>
<xmlSummary>false</xmlSummary>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Local/fork path for the release's mandatory source artifact.
Activate alongside release: `mvn -Prelease,assembly clean verify`.
Packages the working directory via maven-assembly-plugin per
dev-support/assembly/source-release.xml (filesystem excludes,
not `git ls-files`, so it works from a shallow clone, a fork, or
a directory that isn't a git checkout at all), honoring
project.build.outputTimestamp the same way maven-jar-plugin does,
so it stays reproducible alongside the jar and SBOMs.
Deliberately its own profile, not folded into `release`: CI's ATR
upload path builds this same artifact with `git archive` instead
(more deterministic w.r.t. source integrity; see BUILDING.md), so
`release.yml` runs `-Prelease` without `-Passembly` and there is
nothing here for it to build, let alone overwrite. -->
<profile>
<id>assembly</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
<executions>
<execution>
<id>source-release</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/dev-support/assembly/source-release.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Opt-in GPG signing of release artifacts. Activate alongside the
release profile: `mvn -Prelease,sign clean install -DskipTests`.
Signs the jar, pom, and every attached artifact (incl. the
CycloneDX SBOM); each gets a matching `.asc` in target/.
Requires gpg-agent running with the release key unlocked. -->
<profile>
<id>sign</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-release-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode=loopback</arg>
</gpgArguments>
<keyname>${gpg.keyName}</keyname>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
Repeatable Build profile.
Any options which should be set for repeatable builds.
-->
<profile>
<id>repeatable</id>
<properties>
<properties>
<!-- Kept in sync with HEAD's commit time by dev-support/bump-version.sh -->
<!-- the release profile *also* sets this; doing it here delivers the same outcome
on a non-release build. -->
<project.build.outputTimestamp>2026-08-27T15:23:49Z</project.build.outputTimestamp>
</properties>
</properties>
</profile>
<!--
This is a profile to enable the use of the ASF snapshot and staging repositories
during a build. It is useful when testing against nightly or RC releases of dependencies.
-->
<profile>
<id>snapshots-and-staging</id>
<properties>
<!-- override point for ASF staging/snapshot repos -->
<asf.staging>https://repository.apache.org/content/groups/staging/</asf.staging>
<asf.snapshots>https://repository.apache.org/content/repositories/snapshots/</asf.snapshots>
</properties>
<pluginRepositories>
<pluginRepository>
<id>ASF Staging</id>
<url>${asf.staging}</url>
</pluginRepository>
<pluginRepository>
<id>ASF Snapshots</id>
<url>${asf.snapshots}</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>ASF Staging</id>
<url>${asf.staging}</url>
</repository>
<repository>
<id>ASF Snapshots</id>
<url>${asf.snapshots}</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
</profile>
</profiles>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${javac.version}</source>
<target>${javac.version}</target>
<useIncrementalCompilation>true</useIncrementalCompilation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${apache-rat-plugin.version}</version>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${maven-spotless-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<dependencies>
<!-- Override the bundled Checkstyle to a version that parses
modern Java syntax. Bumping in lockstep with the upstream
hadoop-build-tools release that produced the rules. -->
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
<configuration>
<configLocation>${project.basedir}/dev-support/checkstyle.xml</configLocation>
<suppressionsLocation>${project.basedir}/dev-support/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<consoleOutput>true</consoleOutput>
<failsOnError>false</failsOnError>
<failOnViolation>false</failOnViolation>
<linkXRef>false</linkXRef>
<inputEncoding>UTF-8</inputEncoding>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>${doxia-module-markdown.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<!-- Surefire: capture every test's stdout/stderr into a per-test
*-output.txt next to the XML reports so CI artifacts include
the console log for failure triage. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
<executions>
<execution>
<id>default-integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<includes>
<include>**/ITest*.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-build-environment</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.6.0,)</version>
</requireMavenVersion>
<!-- build java version, not the version for the artifact -->
<requireJavaVersion>
<version>[1.17,)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<executions>
<execution>
<id>spotless-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<java>
<includes>
<include>src/**/*.java</include>
</includes>
<excludes>
<!-- Lowercase default-package CLI shims (e.g. dux.java, storediag.java).
Their class identifiers are the public CLI surface. -->
<exclude>src/main/java/*.java</exclude>
<!-- Generated avro -->
<exclude>target/generated-sources/**/*.java</exclude>
</excludes>
<eclipse>
<file>${project.basedir}/dev-support/eclipse-formatter.xml</file>
</eclipse>
<removeUnusedImports/>
<importOrder/>
<licenseHeader>
<file>${project.basedir}/dev-support/license-header.txt</file>
</licenseHeader>
</java>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>rat-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<consoleOutput>true</consoleOutput>
<inputExcludes>
<!-- VCS / IDE / OS scratch -->
<inputExclude>.git/**</inputExclude>
<inputExclude>.idea/**</inputExclude>
<inputExclude>**/.DS_Store</inputExclude>
<inputExclude>*.iml</inputExclude>
<inputExclude>**/*.iml</inputExclude>
<!-- Build artifacts -->
<inputExclude>target/**</inputExclude>
<inputExclude>**/target/**</inputExclude>
<inputExclude>pom.xml.versionsBackup</inputExclude>
<!-- Lists/manifests with no place for a header -->
<inputExclude>.gitignore</inputExclude>
<inputExclude>src/main/resources/cloudstore/required.txt</inputExclude>
<inputExclude>src/main/resources/META-INF/MANIFEST.MF</inputExclude>
<!-- Test fixture data -->
<inputExclude>src/test/resources/auth-keys.xml</inputExclude>
<inputExclude>src/test/resources/TestAuditLogs/**</inputExclude>
<!-- Third-party formatter profile from google/styleguide (Apache 2.0
licensed but not ASF-headered). Used by Spotless. -->
<inputExclude>dev-support/eclipse-formatter.xml</inputExclude>
<inputExclude>NOTICE*</inputExclude>
</inputExcludes>
</configuration>
</plugin>
<!-- Verify-phase guard: fail if any markdown doc references a
cloudstore-<X.Y>.jar that disagrees with
${cloudstore.docs.version}, i.e. the most recently released
version. dev-support/bump-version.sh moves ${project.version}
through X.Y-SNAPSHOT cycles without touching docs;
dev-support/update-site-docs.sh bumps both
${cloudstore.docs.version} and the markdown references
together at release time. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${maven-exec-plugin.version}</version>
<executions>
<execution>
<id>check-doc-versions</id>
<phase>verify</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${project.basedir}/dev-support/check-doc-versions.sh</executable>
<arguments>
<argument>${cloudstore.docs.version}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro.version}</version>
<executions>
<execution>
<id>generate-avro-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/avro</sourceDirectory>
<outputDirectory>${project.build.directory}/generated-sources/avro</outputDirectory>
</configuration>
</plugin>
<!-- Build helper: add generated directory to compile source roots -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${maven-plugin-build-helper.version}</version>
<executions>
<execution>
<id>add-generated-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/avro</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.apache.hadoop.fs.store.Cloudstore</mainClass>
<addDefaultImplementationEntries>false</addDefaultImplementationEntries>
<addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>
</manifest>
<manifestEntries>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<!-- Pinned to a Doxia-1.x-compatible release; see comment on
${maven-project-info-reports-plugin.version}.
Dependency report omitted on purpose: it leaks the full provided
Hadoop tree (~1000 transitive entries) into the site without
adding value for a single-module diagnostics tool. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>summary</report>
<report>licenses</report>
<!-- <report>team</report>
<report>scm</report>
<report>issue-management</report>-->
<report>ci-management</report>
<report>plugins</report>
<report>plugin-management</report>
<!-- <report>distribution-management</report>-->
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>${project.basedir}/dev-support/checkstyle.xml</configLocation>
<suppressionsLocation>${project.basedir}/dev-support/checkstyle-suppressions.xml</suppressionsLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<linkXRef>false</linkXRef>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>checkstyle</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
</plugins>
</reporting>
</project>