| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. See accompanying LICENSE file. |
| --> |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>21</version> |
| <relativePath /> <!-- resolve from repository --> |
| </parent> |
| <artifactId>ratis-thirdparty</artifactId> |
| <groupId>org.apache.ratis</groupId> |
| <version>0.7.0-SNAPSHOT</version> |
| <name>Apache Ratis Thirdparty</name> |
| <packaging>pom</packaging> |
| <description>Thirdparty dependencies for Apache Ratis</description> |
| <url>https://ratis.apache.org/</url> |
| <inceptionYear>2017</inceptionYear> |
| <modules> |
| <module>misc</module> |
| <module>test</module> |
| </modules> |
| <licenses> |
| <license> |
| <name>Apache License, Version 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| </license> |
| </licenses> |
| <scm> |
| <connection>scm:git:git://github.com/apache/incubator-ratis-thirdparty.git</connection> |
| <developerConnection>scm:git:https://github.com/apache/incubator-ratis-thirdparty.git</developerConnection> |
| <url>https://github.com/apache/incubator-ratis-thirdparty</url> |
| <tag>HEAD</tag> |
| </scm> |
| <issueManagement> |
| <system>JIRA</system> |
| <url>http://issues.apache.org/jira/browse/RATIS</url> |
| </issueManagement> |
| <properties> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| <!-- Maven plugin versions --> |
| <copy-rename-maven-plugin.version>1.0</copy-rename-maven-plugin.version> |
| <exec-maven-plugin.version>1.3.1</exec-maven-plugin.version> |
| <maven-bundle-plugin.version>2.5.3</maven-bundle-plugin.version> |
| <maven-checkstyle-plugin.version>2.15</maven-checkstyle-plugin.version> |
| <maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version> |
| <maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version> |
| <maven-replacer-plugin.version>1.5.3</maven-replacer-plugin.version> |
| <native-maven-plugin.version>1.0-alpha-8</native-maven-plugin.version> |
| <os-maven-plugin.version>1.5.0.Final</os-maven-plugin.version> |
| |
| <!-- define the Java language version used by the compiler --> |
| <maven.compiler.source>1.8</maven.compiler.source> |
| <maven.compiler.target>1.8</maven.compiler.target> |
| <java.min.version>${maven.compiler.source}</java.min.version> |
| <maven.min.version>3.3.9</maven.min.version> |
| <protobuf-maven-plugin.version>0.5.1</protobuf-maven-plugin.version> |
| |
| <!--Version of protobuf to be shaded --> |
| <shaded.protobuf.version>3.12.0</shaded.protobuf.version> |
| <!--Version of grpc to be shaded --> |
| <shaded.grpc.version>1.33.0</shaded.grpc.version> |
| <!--Version of Netty to be shaded --> |
| <shaded.netty.version>4.1.60.Final</shaded.netty.version> |
| <!--Version of tcnative to be shaded --> |
| <shaded.netty.tcnative.version>2.0.36.Final</shaded.netty.tcnative.version> |
| |
| <!-- third party library versions --> |
| <commons-lang3.version>3.8.1</commons-lang3.version> |
| <gson.version>2.8.2</gson.version> |
| <guava.version>28.2-jre</guava.version> |
| <io.opencensus.version>0.21.0</io.opencensus.version> |
| <junit.version>4.13</junit.version> |
| <log4j.version>1.2.17</log4j.version> |
| <slf4j.version>1.7.30</slf4j.version> |
| |
| <ratis.thirdparty.shaded.prefix>org.apache.ratis.thirdparty</ratis.thirdparty.shaded.prefix> |
| <ratis.thirdparty.shaded.native.prefix>org_apache_ratis_thirdparty_</ratis.thirdparty.shaded.native.prefix> |
| </properties> |
| |
| <dependencyManagement> |
| <dependencies> |
| <!-- Project dependencies --> |
| <dependency> |
| <groupId>org.apache.ratis</groupId> |
| <artifactId>ratis-thirdparty-misc</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <!-- Third party dependencies - alphabetically by group --> |
| <dependency> |
| <groupId>com.google.code.gson</groupId> |
| <artifactId>gson</artifactId> |
| <version>${gson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>${guava.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <version>${shaded.protobuf.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-netty</artifactId> |
| <version>${shaded.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-protobuf</artifactId> |
| <version>${shaded.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-stub</artifactId> |
| <version>${shaded.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-context</artifactId> |
| <version>${shaded.grpc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty-all</artifactId> |
| <version>${shaded.netty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty-tcnative-boringssl-static</artifactId> |
| <version>${shaded.netty.tcnative.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.opencensus</groupId> |
| <artifactId>opencensus-api</artifactId> |
| <version>${io.opencensus.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.opencensus</groupId> |
| <artifactId>opencensus-contrib-grpc-metrics</artifactId> |
| <version>${io.opencensus.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| <version>${log4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <version>${commons-lang3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>${slf4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| <version>${slf4j.version}</version> |
| </dependency> |
| |
| <!-- Test only dependencies --> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>${junit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${maven-javadoc-plugin.version}</version> |
| <configuration> |
| <additionalJOptions> |
| <additionalJOption>-Xmaxwarns</additionalJOption> |
| <additionalJOption>10000</additionalJOption> |
| <additionalJOption>-Xdoclint:-missing</additionalJOption> |
| </additionalJOptions> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>native-maven-plugin</artifactId> |
| <version>${native-maven-plugin.version}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${exec-maven-plugin.version}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <configuration> |
| <rules> |
| <requireMavenVersion> |
| <version>[${maven.min.version},)</version> |
| </requireMavenVersion> |
| <requireJavaVersion> |
| <version>[${java.min.version},)</version> |
| </requireJavaVersion> |
| </rules> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <!--Defer to the ratis-assembly sub-module. It does all assembly--> |
| <skipAssembly>true</skipAssembly> |
| </configuration> |
| </plugin> |
| <!-- Make a jar and put the sources in the jar. |
| In the parent pom, so submodules will do the right thing. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-release-plugin</artifactId> |
| <configuration> |
| <!--You need this profile. It'll sign your artifacts. |
| I'm not sure if this config. actually works though. |
| I've been specifying -Papache-release on the command-line |
| --> |
| <releaseProfiles>apache-release</releaseProfiles> |
| <!--This stops our running tests for each stage of maven release. |
| But it builds the test jar. From SUREFIRE-172. |
| --> |
| <arguments>-Dmaven.test.skip.exec ${arguments}</arguments> |
| <goals>${goals}</goals> |
| <pomFileName>pom.xml</pomFileName> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <!-- target/ should get picked up from Apache parent pom.. --> |
| <configuration> |
| <!-- Lets us define more exclusions in child-modules without overriding these --> |
| <excludes combine.children="append"> |
| <exclude>target/*</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <version>${maven-bundle-plugin.version}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <version>${protobuf-maven-plugin.version}</version> |
| <configuration> |
| <protocArtifact> |
| com.google.protobuf:protoc:${shaded.protobuf.version}:exe:${os.detected.classifier} |
| </protocArtifact> |
| <!-- Place these in a location that compiler-plugin is already looking --> |
| <outputDirectory>${project.build.directory}/generated-sources</outputDirectory> |
| <!-- With multiple executions, this must be `false` otherwise we wipe out the previous execution --> |
| <clearOutputDirectory>false</clearOutputDirectory> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <inherited>false</inherited> |
| <executions> |
| <execution> |
| <id>clean</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <phase>pre-clean</phase> |
| </execution> |
| <execution> |
| <id>default</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <phase>validate</phase> |
| <configuration> |
| <rules> |
| <!-- The earliest maven version we verify builds for via ASF Jenkins --> |
| <requireMavenVersion> |
| <version>[${maven.min.version},)</version> |
| <message>Maven is out of date. |
| Ratis requires at least version ${maven.min.version} of Maven to properly build from source. |
| You appear to be using an older version. You can use either "mvn -version" or |
| "mvn enforcer:display-info" to verify what version is active. |
| </message> |
| </requireMavenVersion> |
| <!-- The earliest JVM version we verify builds for via ASF Jenkins --> |
| <requireJavaVersion> |
| <version>[${java.min.version},)</version> |
| <message>Java is out of date. |
| Ratis requires at least version ${java.min.version} of the JDK to properly build from source. |
| You appear to be using an older version. You can use either "mvn -version" or |
| "mvn enforcer:display-info" to verify what version is active. |
| </message> |
| </requireJavaVersion> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <inherited>true</inherited> |
| <extensions>true</extensions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>${maven-checkstyle-plugin.version}</version> |
| </plugin> |
| </plugins> |
| </build> |
| <profiles> |
| <profile> |
| <id>release</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <executions> |
| <execution> |
| <!-- builds source jars and attaches them to the project for publishing --> |
| <id>ratis-java-sources</id> |
| <phase>package</phase> |
| <goals> |
| <goal>jar-no-fork</goal> |
| <goal>test-jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <dependencies> |
| <dependency> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>extra-enforcer-rules</artifactId> |
| <version>1.0-beta-6</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <id>dist-enforce</id> |
| <phase>package</phase> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <enforceBytecodeVersion> |
| <maxJdkVersion>${java.min.version}</maxJdkVersion> |
| <message>Ratis has unsupported dependencies. |
| Ratis requires that all dependencies be compiled with version ${java.min.version} or earlier |
| of the JDK to properly build from source. You appear to be using a newer dependency. You can use |
| either "mvn -version" or "mvn enforcer:display-info" to verify what version is active. |
| Non-release builds can temporarily build with a newer JDK version by setting the |
| 'javac.source' property (eg. mvn -Djavac.source=1.8 clean package). |
| </message> |
| </enforceBytecodeVersion> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <!-- Execution at the validate lifecycle is good --> |
| <id>check-licenses</id> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| </project> |