| <?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>0.4.0-incubating</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/incubator-paimon</url> |
| <connection>git@github.com:apache/incubator-paimon.git</connection> |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/incubator-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-test-utils</module> |
| </modules> |
| |
| <properties> |
| <project.build.outputTimestamp>2023-04-21T08:35:05Z</project.build.outputTimestamp> |
| <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> |
| <hadoop.version>2.8.5</hadoop.version> |
| <scala.version>2.12.7</scala.version> |
| <scala.binary.version>2.12</scala.binary.version> |
| <snappy.version>1.1.8.3</snappy.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> |
| <spotless.license.header> |
| /* |
| * 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. |
| */ |
| </spotless.license.header> |
| <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.17.2</testcontainers.version> |
| <awaitility.version>4.2.0</awaitility.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.17</test.flink.main.version> |
| <test.flink.version>1.17.0</test.flink.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.1</avro.version> |
| <kafka.version>3.2.3</kafka.version> |
| <jacoco.version>0.8.8</jacoco.version> |
| </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> |
| |
| <dependency> |
| <groupId>org.awaitility</groupId> |
| <artifactId>awaitility</artifactId> |
| <version>${awaitility.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.jacoco</groupId> |
| <artifactId>org.jacoco.agent</artifactId> |
| <version>${jacoco.version}</version> |
| <classifier>runtime</classifier> |
| <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> |
| </profiles> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>2.4</version><!--$NO-MVN-MAN-VER$--> |
| <configuration> |
| <archive> |
| <manifest> |
| <addDefaultImplementationEntries>true</addDefaultImplementationEntries> |
| <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> |
| </manifest> |
| </archive> |
| </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> |
| <notes/> |
| <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/static/font-awesome/**</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>docs/layouts/shortcodes/generated/**</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> |
| <!-- Test files --> |
| <exclude>paimon-common/src/test/resources/codesplit/**</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>2.22.1</version> |
| <configuration> |
| <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> |
| <jacoco-agent.destfile>${project.build.directory}/jacoco.exec</jacoco-agent.destfile> |
| </systemPropertyVariables> |
| <argLine>-Xms256m -Xmx2048m -Dmvn.forkNumber=${surefire.forkNumber} -XX:+UseG1GC</argLine> |
| </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_${scala.binary.version}</exclude> |
| </excludes> |
| <includes> |
| <include>org.apache.flink:flink-table-planner_${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>true</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> |
| </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 (incubating)</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>0.1</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> |
| <!-- add plugin jacoco report --> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>${jacoco.version}</version> |
| <configuration> |
| <skip>false</skip> |
| <dataFile>${project.build.directory}/jacoco.exec</dataFile> |
| </configuration> |
| <executions> |
| <execution> |
| <id>default-prepare-agent</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <propertyName>surefireArgLine</propertyName> |
| </configuration> |
| </execution> |
| <execution> |
| <id>default-instrument</id> |
| <goals> |
| <goal>instrument</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>default-restore-instrumented-classes</id> |
| <goals> |
| <goal>restore-instrumented-classes</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>default-report</id> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| </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> |
| </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> |
| |
| <removeUnusedImports/> |
| </java> |
| </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> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <version>1.7.0</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <resourceBundles> |
| <resourceBundle>org.apache.apache.resources:apache-incubator-disclaimer-resource-bundle:1.5</resourceBundle> |
| </resourceBundles> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| |
| <!-- |
| Uncomment the following "repositories" tag if your maven fails to download paimon-bundle snapshot files. |
| We comment these tags by default because downloading from apache repositories is very slow for both github and developers. |
| --> |
| |
| <!-- |
| <repositories> |
| <repository> |
| <id>apache-releases</id> |
| <name>apache releases</name> |
| <url>https://repository.apache.org/content/repositories/releases/</url> |
| </repository> |
| <repository> |
| <id>apache-snapshots</id> |
| <name>apache snapshots</name> |
| <url>https://repository.apache.org/content/repositories/snapshots/</url> |
| </repository> |
| </repositories> |
| --> |
| </project> |