blob: 058cd134b1228abd7ea5dac4d227ddc12f91eaee [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>
<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>
<buildnumber.check>false</buildnumber.check>
<buildnumber.update>false</buildnumber.update>
<!-- 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>
<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-buildnumber-plugin.version>3.3.0</maven-buildnumber-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.1</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.0</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.6.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>
<!-- cloudera 7.3.2 -->
<profile>
<id>7.3.2</id>
<properties>
<hadoop.version>3.4.1.7.3.2.0</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>
<buildnumber.check>true</buildnumber.check>
<!-- update=false: do NOT `git pull` during the release build. doUpdate
runs `git pull` to refresh the working copy, which fails on setups
where the local branch has no matching upstream ref
("fatal: couldn't find remote ref HEAD") and aborts the whole
build. The release only needs the clean-tree check (doCheck) and
the local revision; pulling is the releaser's job, done
deliberately before the build. -->
<buildnumber.update>false</buildnumber.update>
</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. -->
<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>
<includeCompileScope>true</includeCompileScope>
<includeProvidedScope>false</includeProvidedScope>
<includeRuntimeScope>false</includeRuntimeScope>
<includeSystemScope>false</includeSystemScope>
<includeTestScope>false</includeTestScope>
<outputFormat>all</outputFormat>
<outputName>${project.artifactId}-${project.version}-cyclonedx</outputName>
<schemaVersion>1.5</schemaVersion>
<projectType>library</projectType>
</configuration>
</execution>
</executions>
</plugin>
<!-- Emit SHA-256 checksums alongside the release jar and SBOM.
Downloaders verify integrity with `shasum -c <file>.sha256`
before trusting the artifact; the gpg signature on the
original file remains the authenticity primitive.
Runs in the `verify` phase, after the cyclonedx-maven-plugin
has produced the SBOM files in `package`, so all three
inputs exist on disk. -->
<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}-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>
<!-- 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>
<!--
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>
<configuration>
<!-- <archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>-->
</configuration>
</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>
<!-- <argLine>${maven-surefire-plugin.argLine} -DminiClusterDedicatedDirs=true</argLine>-->
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
<!--
<systemPropertyVariables>
</systemPropertyVariables>
-->
<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>
<!-- kept failing -->
<!-- Execution default of goal org.codehaus.mojo:buildnumber-maven-plugin:3.3.0:create failed: begin 4, end 0, length 0 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>${maven-buildnumber-plugin.version}</version>
<configuration>
<shortRevisionLength>7</shortRevisionLength>
<doCheck>${buildnumber.check}</doCheck>
<doUpdate>${buildnumber.update}</doUpdate>
<revisionOnScmFailure>UNKNOWN</revisionOnScmFailure>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</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>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<git-SHA-1>${buildNumber}</git-SHA-1>
</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>