paimon-parent
Used in: 0 components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
Overview
Description
The Apache Software Foundation provides support for the Apache community of open-source software projects.
The Apache projects are characterized by a collaborative, consensus based development process, an open and
pragmatic software license, and a desire to create high quality software that leads the way in its field.
We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
and users.
Snippets
<dependency> <groupId>org.apache.paimon</groupId> <artifactId>paimon-parent</artifactId> <version>1.0.1</version> </dependency>
Maven POM File
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>23</version> </parent> <artifactId>paimon-parent</artifactId> <groupId>org.apache.paimon</groupId> <name>Paimon : </name> <version>1.0.1</version> <packaging>pom</packaging> <url>https://paimon.apache.org</url> <inceptionYear>2023</inceptionYear> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <scm> <url>https://github.com/apache/paimon</url> <connection>git@github.com:apache/paimon.git</connection> <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/paimon.git</developerConnection> </scm> <modules> <module>paimon-benchmark</module> <module>paimon-codegen</module> <module>paimon-codegen-loader</module> <module>paimon-common</module> <module>paimon-core</module> <module>paimon-flink</module> <module>paimon-docs</module> <module>paimon-e2e-tests</module> <module>paimon-filesystems</module> <module>paimon-format</module> <module>paimon-bundle</module> <module>paimon-hive</module> <module>paimon-spark</module> <module>paimon-service</module> <module>paimon-test-utils</module> <module>paimon-arrow</module> <module>tools/ci/paimon-ci-tools</module> <module>paimon-open-api</module> </modules> <properties> <project.build.outputTimestamp>2025-01-24T08:54:03Z</project.build.outputTimestamp> <paimon.shade.version>0.8.0</paimon.shade.version> <paimon.shade.jackson.version>2.14.2</paimon.shade.jackson.version> <paimon.shade.guava.version>30.1.1-jre</paimon.shade.guava.version> <paimon.shade.caffeine.version>2.9.3</paimon.shade.caffeine.version> <paimon.shade.netty.version>4.1.100.Final</paimon.shade.netty.version> <antlr4.version>4.9.3</antlr4.version> <hadoop.version>2.8.5</hadoop.version> <scala.binary.version>2.12</scala.binary.version> <flink.scala.binary.version>2.12</flink.scala.binary.version> <scala212.version>2.12.15</scala212.version> <scala213.version>2.13.14</scala213.version> <scala.version>${scala212.version}</scala.version> <codegen.scala.version>${scala212.version}</codegen.scala.version> <snappy.version>1.1.8.4</snappy.version> <airlift.version>0.27</airlift.version> <lz4.version>1.8.0</lz4.version> <slf4j.version>1.7.32</slf4j.version> <log4j.version>2.17.1</log4j.version> <junit4.version>4.13.2</junit4.version> <junit5.version>5.8.1</junit5.version> <spotless.version>2.13.0</spotless.version> <spotless.delimiter>package</spotless.delimiter> <target.java.version>1.8</target.java.version> <assertj.version>3.23.1</assertj.version> <javax.annotation-api.version>1.3.2</javax.annotation-api.version> <flink.forkCount>1C</flink.forkCount> <flink.reuseForks>true</flink.reuseForks> <testcontainers.version>1.19.1</testcontainers.version> <iceberg.version>1.6.1</iceberg.version> <parquet.version>1.13.1</parquet.version> <orc.version>1.9.2</orc.version> <protobuf-java.version>3.19.6</protobuf-java.version> <!-- Can be set to any value to reproduce a specific build. --> <test.randomization.seed/> <test.unit.pattern>**/*Test.*</test.unit.pattern> <test.flink.main.version>1.20</test.flink.main.version> <test.flink.version>1.20.0</test.flink.version> <!-- TODO upgrade after connector releases x-1.19 version --> <test.flink.connector.kafka.version>3.0.1-1.18</test.flink.connector.kafka.version> <test.mysql.connector.java.version>8.0.27</test.mysql.connector.java.version> <!-- spark profile properties--> <paimon-sparkx-common>paimon-spark3-common</paimon-sparkx-common> <paimon-spark-common.spark.version>3.5.3</paimon-spark-common.spark.version> <test.spark.main.version>3.3</test.spark.main.version> <test.spark.version>3.3.0</test.spark.version> <zstd-jni.version>1.5.5-11</zstd-jni.version> <janino.version>3.0.11</janino.version> <mockito.version>3.4.6</mockito.version> <jaxb.api.version>2.3.1</jaxb.api.version> <findbugs.version>1.3.9</findbugs.version> <json-smart.version>2.4.9</json-smart.version> <avro.version>1.11.3</avro.version> <kafka.version>3.2.3</kafka.version> <scala-maven-plugin.version>3.2.2</scala-maven-plugin.version> <scalatest-maven-plugin.version>2.1.0</scalatest-maven-plugin.version> <jsoup.version>1.15.3</jsoup.version> <CodeCacheSize>128m</CodeCacheSize> <extraJavaTestArgs> -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED -Djdk.reflect.useDirectMethodHandle=false -Dio.netty.tryReflectionSetAccessible=true </extraJavaTestArgs> </properties> <dependencies> <!-- Root dependencies for all projects --> <!-- Logging API --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <!-- 'javax.annotation' classes like '@Nullable' --> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> </dependency> <!-- test dependencies --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>${assertj.version}</version> <scope>test</scope> </dependency> <!-- tests will have log4j as the default logging framework available --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <scope>test</scope> </dependency> <dependency> <!-- API bridge between log4j 1 and 2 --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>${javax.annotation-api.version}</version> </dependency> <!-- This manages the 'javax.annotation' annotations (JSR305) --> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>${findbugs.version}</version> </dependency> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>${junit5.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit4.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <!-- API bridge between log4j 1 and 2 --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <!-- pin transitive dependency of org.apache.hadoop:hadoop-common:2.8.5 --> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> <version>${json-smart.version}</version> </dependency> </dependencies> </dependencyManagement> <profiles> <!-- We're reusing the apache-release build profile defined in the Apache Parent POM, with one exclusion: do not run the source-release-assembly execution goal. We have our own scripts to create the source release, which correctly excludes binaries from distribution tarball. The script can be found under tools/releasing/create_source_release.sh. --> <profile> <id>apache-release</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <dependencies> <dependency> <groupId>org.apache.apache.resources</groupId> <artifactId>apache-source-release-assembly-descriptor</artifactId> <version>1.0.6</version> </dependency> </dependencies> <executions> <execution> <id>source-release-assembly</id> <!-- disable the execution --> <phase>none</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>docs-and-source</id> <activation> <property> <name>docs-and-source</name> </property> </activation> <build> <plugins> <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> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <quiet>true</quiet> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>spark3</id> <modules> <module>paimon-spark/paimon-spark3-common</module> <module>paimon-spark/paimon-spark-3.5</module> <module>paimon-spark/paimon-spark-3.4</module> <module>paimon-spark/paimon-spark-3.3</module> <module>paimon-spark/paimon-spark-3.2</module> </modules> <properties> <scala.binary.version>2.12</scala.binary.version> <scala.version>${scala212.version}</scala.version> <paimon-spark-common.spark.version>3.5.3</paimon-spark-common.spark.version> <paimon-sparkx-common>paimon-spark3-common</paimon-sparkx-common> <!-- todo: support the latest spark in paimon e2e test2 --> <test.spark.main.version>3.3</test.spark.main.version> <test.spark.version>3.3.0</test.spark.version> </properties> <activation> <activeByDefault>true</activeByDefault> <property> <name>spark3</name> </property> </activation> </profile> <profile> <id>spark4</id> <modules> <module>paimon-spark/paimon-spark4-common</module> <module>paimon-spark/paimon-spark-4.0</module> </modules> <properties> <target.java.version>17</target.java.version> <antlr4.version>4.13.1</antlr4.version> <scala.binary.version>2.13</scala.binary.version> <scala.version>${scala213.version}</scala.version> <paimon-spark-common.spark.version>4.0.0-preview2</paimon-spark-common.spark.version> <paimon-sparkx-common>paimon-spark4-common</paimon-sparkx-common> <test.spark.main.version>4.0</test.spark.main.version> <test.spark.version>4.0.0-preview2</test.spark.version> </properties> <activation> <property> <name>spark4</name> </property> </activation> </profile> </profiles> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.4.2</version><!--$NO-MVN-MAN-VER$--> <configuration> <archive> <manifestEntries> <SCM-Revision>${git.commit.id}</SCM-Revision> </manifestEntries> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>4.0.0</version> <executions> <execution> <id>get-the-git-infos</id> <goals> <goal>revision</goal> </goals> <phase>validate</phase> </execution> </executions> <configuration> <dotGitDirectory>${project.basedir}/.git</dotGitDirectory> <failOnNoGitDirectory>false</failOnNoGitDirectory> <failOnUnableToExtractRepoInfo>false</failOnUnableToExtractRepoInfo> <useNativeGit>true</useNativeGit> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <version>0.15</version> <inherited>false</inherited> <executions> <execution> <phase>verify</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <excludeSubProjects>false</excludeSubProjects> <numUnapprovedLicenses>0</numUnapprovedLicenses> <licenses> <!-- Enforce this license: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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. --> <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense"> <licenseFamilyCategory>AL2</licenseFamilyCategory> <licenseFamilyName>Apache License 2.0</licenseFamilyName> <patterns> <pattern>Licensed to the Apache Software Foundation (ASF) under one</pattern> </patterns> </license> </licenses> <licenseFamilies> <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily"> <familyName>Apache License 2.0</familyName> </licenseFamily> </licenseFamilies> <excludes> <!-- Additional files like .gitignore etc.--> <exclude>**/.*/**</exclude> <exclude>**/*.prefs</exclude> <exclude>**/*.log</exclude> <!-- Administrative files in the main trunk. --> <exclude>**/README.md</exclude> <exclude>**/CODE_OF_CONDUCT.md</exclude> <exclude>.github/**</exclude> <!-- IDE files. --> <exclude>**/*.iml</exclude> <exclude>**/.idea/**</exclude> <!-- Generated content --> <exclude>**/target/**</exclude> <exclude>**/scalastyle-output.xml</exclude> <exclude>docs/resources/**</exclude> <exclude>docs/public/**</exclude> <exclude>docs/themes/book/**</exclude> <exclude>docs/assets/github.css</exclude> <exclude>docs/static/js/anchor.min.js</exclude> <exclude>**/*.svg</exclude> <exclude>**/dependency-reduced-pom.xml</exclude> <!-- Bundled license files --> <exclude>**/LICENSE*</exclude> <!-- artifacts created during release process --> <exclude>release/**</exclude> <!-- antlr grammar files --> <exclude>paimon-common/src/main/antlr4/**</exclude> <exclude>paimon-core/src/test/resources/compatibility/**</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> </plugin> <!--surefire for unit tests and integration tests--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <useSystemClassLoader>false</useSystemClassLoader> <forkCount>${flink.forkCount}</forkCount> <reuseForks>${flink.reuseForks}</reuseForks> <trimStackTrace>false</trimStackTrace> <systemPropertyVariables> <forkNumber>0${surefire.forkNumber}</forkNumber> <checkpointing.randomization>false</checkpointing.randomization> <project.basedir>${project.basedir}</project.basedir> <!--suppress MavenModelInspection --> <test.randomization.seed>${test.randomization.seed}</test.randomization.seed> <test.flink.main.version>${test.flink.main.version}</test.flink.main.version> <test.flink.version>${test.flink.version}</test.flink.version> <!-- for junit5 --> <junit.jupiter.extensions.autodetection.enabled>true</junit.jupiter.extensions.autodetection.enabled> </systemPropertyVariables> <argLine>-Xms256m -Xmx2048m -Dmvn.forkNumber=${surefire.forkNumber} -XX:+UseG1GC ${extraJavaTestArgs}</argLine> <!-- By removing all default exclusions the nested classes get executed too --> <excludes> <exclude/> </excludes> </configuration> <executions> <!--execute all the unit tests--> <execution> <id>default-test</id> <phase>test</phase> <goals> <goal>test</goal> </goals> <configuration> <includes> <include>${test.unit.pattern}</include> </includes> </configuration> </execution> <!--execute all the integration tests--> <execution> <id>integration-tests</id> <phase>integration-test</phase> <goals> <goal>test</goal> </goals> <configuration> <includes> <include>**/*.*</include> </includes> <excludes> <exclude>${test.unit.pattern}</exclude> </excludes> <reuseForks>false</reuseForks> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <!-- enforce at least mvn version 3.1.1 (see FLINK-12447) --> <version>[3.1.1,)</version> </requireMavenVersion> <requireJavaVersion> <version>${target.java.version}</version> </requireJavaVersion> </rules> </configuration> </execution> <execution> <id>ban-unsafe-snakeyaml</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>org.yaml:snakeyaml:(,1.26]</exclude> </excludes> <includes> <!-- Snakeyaml is pulled in by many modules without using it in production, so there's no benefit in us investing time into bumping these. --> <include>org.yaml:snakeyaml:(,1.26]:*:test</include> </includes> </bannedDependencies> </rules> </configuration> </execution> <execution> <id>ban-unsafe-jackson</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>com.fasterxml.jackson*:*:(,2.7.0]</exclude> </excludes> </bannedDependencies> </rules> </configuration> </execution> <execution> <id>forbid-log4j-1</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>log4j:log4j</exclude> <exclude>org.slf4j:slf4j-log4j12</exclude> </excludes> </bannedDependencies> </rules> </configuration> </execution> <execution> <id>forbid-direct-table-planner-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>org.apache.flink:flink-table-planner_${flink.scala.binary.version}</exclude> </excludes> <includes> <include>org.apache.flink:flink-table-planner_${flink.scala.binary.version}:*:*:test</include> </includes> <message> Direct dependencies on flink-table-planner are not allowed. You should depend on either Table API modules, flink-table-planner-loader or paimon-codegen-loader. </message> </bannedDependencies> </rules> </configuration> </execution> <execution> <id>dependency-convergence</id> <!-- disabled by default as it interacts badly with shade-plugin --> <phase>none</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <dependencyConvergence/> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <id>shade-paimon</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <shadeTestJar>false</shadeTestJar> <shadedArtifactAttached>false</shadedArtifactAttached> <createDependencyReducedPom>true</createDependencyReducedPom> <!-- Filters MUST be appended; merging filters does not work properly, see MSHADE-305 --> <filters combine.children="append"> <!-- Globally exclude log4j.properties from our JAR files. --> <filter> <artifact>*</artifact> <excludes> <exclude>log4j.properties</exclude> <exclude>log4j2.properties</exclude> <exclude>log4j-test.properties</exclude> <exclude>log4j2-test.properties</exclude> <!-- Do not copy the signatures in the META-INF folder. Otherwise, this might cause SecurityExceptions when using the JAR. --> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> <!-- drop entries into META-INF and NOTICE files for the dummy artifact --> <filter> <artifact>org.apache.flink:force-shading</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <!-- io.netty:netty brings its own LICENSE.txt which we don't need --> <filter> <artifact>io.netty:netty</artifact> <excludes> <exclude>META-INF/LICENSE.txt</exclude> </excludes> </filter> </filters> <artifactSet> <includes> <!-- Unfortunately, the next line is necessary for now to force the execution of the Shade plugin upon all sub modules. This will generate effective poms, i.e. poms which do not contain properties which are derived from this root pom. In particular, the Scala version properties are defined in the root pom and without shading, the root pom would have to be Scala suffixed and thereby all other modules. --> <include>org.apache.flink:force-shading</include> </includes> </artifactSet> <transformers combine.children="append"> <!-- The service transformer is needed to merge META-INF/services files --> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> <!-- The ApacheNoticeResourceTransformer collects and aggregates NOTICE files --> <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> <projectName>Apache Paimon</projectName> <inceptionYear>${project.inceptionYear}</inceptionYear> <encoding>UTF-8</encoding> </transformer> </transformers> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <configuration> <filesets> <fileset> <directory>${project.basedir}</directory> <includes> <include>dependency-reduced-pom.xml</include> </includes> </fileset> </filesets> </configuration> </plugin> <!-- generate configuration docs --> <plugin> <groupId>org.commonjava.maven.plugins</groupId> <artifactId>directory-maven-plugin</artifactId> <version>1.0</version> <executions> <execution> <id>directories</id> <goals> <goal>directory-of</goal> </goals> <phase>initialize</phase> <configuration> <property>rootDir</property> <project> <groupId>org.apache.paimon</groupId> <artifactId>paimon-parent</artifactId> </project> </configuration> </execution> </executions> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.7</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>${target.java.version}</source> <target>${target.java.version}</target> <!-- The semantics of this option are reversed, see MCOMPILER-209. --> <useIncrementalCompilation>false</useIncrementalCompilation> <compilerArgs> <!-- Prevents recompilation due to missing package-info.class, see MCOMPILER-205 --> <arg>-Xpkginfo:always</arg> <arg>-Xlint:deprecation</arg> </compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.17</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <!-- Note: match version with docs/flinkDev/ide_setup.md --> <version>8.14</version> </dependency> </dependencies> <executions> <execution> <id>validate</id> <phase>validate</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <suppressionsLocation>/tools/maven/suppressions.xml</suppressionsLocation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <configLocation>/tools/maven/checkstyle.xml</configLocation> <logViolationsToConsole>true</logViolationsToConsole> <failOnViolation>true</failOnViolation> </configuration> </plugin> <plugin> <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> <version>${spotless.version}</version> <configuration> <java> <googleJavaFormat> <version>1.7</version> <style>AOSP</style> </googleJavaFormat> <!-- \# refers to the static imports --> <importOrder> <order>org.apache.paimon,org.apache.paimon.shade,,javax,java,scala,\#</order> </importOrder> <licenseHeader> <!-- replace it with ${project.rootDirectory} after maven 4.0.0, see MNG-7038 --> <file>${maven.multiModuleProjectDirectory}/copyright.txt</file> <delimiter>${spotless.delimiter}</delimiter> </licenseHeader> </java> <scala> <!-- make it works `// spotless:off` --> <toggleOffOn /> <scalafmt> <version>3.4.3</version> <file>${maven.multiModuleProjectDirectory}/.scalafmt.conf</file> </scalafmt> <licenseHeader> <file>${maven.multiModuleProjectDirectory}/copyright.txt</file> <delimiter>${spotless.delimiter}</delimiter> </licenseHeader> </scala> </configuration> <executions> <execution> <id>spotless-check</id> <phase>validate</phase> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.9.1</version><!--$NO-MVN-MAN-VER$--> <configuration> <quiet>true</quiet> <detectOfflineLinks>false</detectOfflineLinks> <additionalJOptions combine.children="append"> <additionalJOption>-Xdoclint:none</additionalJOption> </additionalJOptions> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M1</version> </plugin> <!-- Pin the version of the maven shade plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.4.1</version> </plugin> <!-- configure scala style --> <plugin> <groupId>org.scalastyle</groupId> <artifactId>scalastyle-maven-plugin</artifactId> <version>1.0.0</version> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <verbose>false</verbose> <failOnViolation>true</failOnViolation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <failOnWarning>false</failOnWarning> <sourceDirectory>${basedir}/src/main/scala</sourceDirectory> <testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory> <outputFile>${project.basedir}/target/scalastyle-output.xml</outputFile> <inputEncoding>UTF-8</inputEncoding> <outputEncoding>UTF-8</outputEncoding> </configuration> </plugin> <plugin> <!-- Inherited from Apache parent, but not actually used. Disable to reduce noise. --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <executions> <execution> <id>attach-descriptor</id> <phase>none</phase> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <inherited>false</inherited> <executions> <execution> <id>check-license</id> <!-- manually called --> <phase>none</phase> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>org.apache.paimon.tools.ci.licensecheck.LicenseChecker</mainClass> <includePluginDependencies>true</includePluginDependencies> <includeProjectDependencies>false</includeProjectDependencies> </configuration> <dependencies> <dependency> <groupId>org.apache.paimon</groupId> <artifactId>paimon-ci-tools</artifactId> <version>${project.version}</version> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> </build> <!-- Uncomment the following "repositories" tag if your maven fails to download paimon-shade snapshot files. We comment these tags by default because downloading from apache repositories is very slow for both github and developers. --> <!-- <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>apache-releases</id> <name>apache releases</name> <url>https://repository.apache.org/content/repositories/releases/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>apache-snapshots</id> <name>apache snapshots</name> <url>https://repository.apache.org/content/repositories/snapshots/</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> --> </project>