| <?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> |