| <?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> |
| <artifactId>ratis</artifactId> |
| <groupId>org.apache.ratis</groupId> |
| <version>0.1.0-alpha</version> |
| </parent> |
| |
| <artifactId>ratis-hadoop-shaded</artifactId> |
| <name>Apache Ratis Hadoop Shaded</name> |
| |
| <properties> |
| <maven.javadoc.skip>true</maven.javadoc.skip> |
| <!--The Default target dir--> |
| <classes.dir>${project.build.directory}/classes</classes.dir> |
| <!--The Default location for sources--> |
| <shaded.sources.dir>src/main/java</shaded.sources.dir> |
| |
| <!--Version of Hadoop to be shaded --> |
| <shaded.hadoop.version>${hadoop.version}</shaded.hadoop.version> |
| </properties> |
| |
| <build> |
| <!--I want to override these in profile so define them |
| with variables up here--> |
| <sourceDirectory>${shaded.sources.dir}</sourceDirectory> |
| <outputDirectory>${classes.dir}</outputDirectory> |
| <plugins> |
| <!-- Make a jar and put the sources in the jar --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <!--Make it so assembly:single does nothing in here--> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <skipAssembly>true</skipAssembly> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <dependencies> |
| <dependency> |
| <artifactId>ratis-proto-shaded</artifactId> |
| <groupId>org.apache.ratis</groupId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <version>${shaded.protobuf.version}</version> |
| <optional>true</optional> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf.nano</groupId> |
| <artifactId>protobuf-javanano</artifactId> |
| <version>${shaded.protobuf.version}</version> |
| <optional>true</optional> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</artifactId> |
| <version>${shaded.hadoop.version}</version> |
| <optional>true</optional> |
| </dependency> |
| </dependencies> |
| |
| <profiles> |
| <!-- Skip the tests in this module --> |
| <profile> |
| <id>skip-shaded-tests</id> |
| <activation> |
| <property> |
| <name>skip-shaded-tests</name> |
| </property> |
| </activation> |
| <properties> |
| <surefire.skipFirstPart>true</surefire.skipFirstPart> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>skipCompileProto</id> |
| <activation> |
| <file> |
| <exists>${shaded.sources.dir}</exists> |
| </file> |
| <property> |
| <name>!compile-protobuf</name> |
| </property> |
| </activation> |
| </profile> |
| |
| <profile> |
| <id>clean-shade</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>${shaded.sources.dir}</directory> |
| <followSymlinks>false</followSymlinks> |
| </fileset> |
| <fileset> |
| <directory>.</directory> |
| <includes> |
| <include>dependency-reduced-pom.xml</include> |
| </includes> |
| <followSymlinks>false</followSymlinks> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>compile-protobuf</id> |
| <!-- |
| Shade and drop the generated java files under src/main/java. |
| --> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <properties> |
| <profile.id>compile-protobuf</profile.id> |
| <!--When the compile for this profile runs, make sure it makes jars that |
| can be related back to this shading profile. Give them a shading prefix. |
| --> |
| <jar.finalName>${profile.id}.${project.artifactId}-${project.version}</jar.finalName> |
| </properties> |
| <build> |
| <finalName>${jar.finalName}</finalName> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| <configuration> |
| <shadeSourcesContent>true</shadeSourcesContent> |
| <createSourcesJar>true</createSourcesJar> |
| <relocations> |
| <relocation> |
| <pattern>com.google.protobuf</pattern> |
| <shadedPattern>org.apache.ratis.shaded.com.google.protobuf</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.hadoop.ipc.protobuf</pattern> |
| <shadedPattern>org.apache.ratis.shaded.org.apache.hadoop.ipc.protobuf</shadedPattern> |
| </relocation> |
| </relocations> |
| |
| <filters> |
| <filter> |
| <artifact>org.apache.hadoop:hadoop-common</artifact> |
| <includes> |
| <include>org/apache/hadoop/ipc/protobuf/**</include> |
| </includes> |
| </filter> |
| </filters> |
| |
| <artifactSet> |
| <excludes> |
| <exclude>com.google.code.findbugs:jsr305</exclude> |
| <exclude>com.google.code.gson:gson</exclude> |
| <exclude>com.google.guava:guava</exclude> |
| <exclude>com.google.protobuf.nano:protobuf-javanano</exclude> |
| <exclude>com.google.protobuf:protobuf-java</exclude> |
| <exclude>com.google.re2j:re2j</exclude> |
| |
| <exclude>com.jamesmurty.utils:java-xmlbuilder</exclude> |
| <exclude>com.jcraft:jsch</exclude> |
| <exclude>com.nimbusds:nimbus-jose-jwt</exclude> |
| <exclude>com.sun.jersey:jersey-core</exclude> |
| <exclude>com.sun.jersey:jersey-json</exclude> |
| <exclude>com.sun.jersey:jersey-server</exclude> |
| <exclude>com.sun.jersey:jersey-servlet</exclude> |
| <exclude>com.sun.xml.bind:jaxb-impl</exclude> |
| <exclude>com.thoughtworks.paranamer:paranamer</exclude> |
| |
| <exclude>commons-beanutils:commons-beanutils-core</exclude> |
| <exclude>commons-beanutils:commons-beanutils</exclude> |
| <exclude>commons-cli:commons-cli</exclude> |
| <exclude>commons-codec:commons-codec</exclude> |
| <exclude>commons-collections:commons-collections</exclude> |
| <exclude>commons-configuration:commons-configuration</exclude> |
| <exclude>commons-digester:commons-digester</exclude> |
| <exclude>commons-io:commons-io</exclude> |
| <exclude>commons-lang:commons-lang</exclude> |
| <exclude>commons-logging:commons-logging</exclude> |
| <exclude>commons-net:commons-net</exclude> |
| |
| <exclude>io.netty:netty</exclude> |
| <exclude>javax.activation:activation</exclude> |
| <exclude>javax.servlet.jsp:jsp-api</exclude> |
| <exclude>javax.servlet:servlet-api</exclude> |
| <exclude>javax.ws.rs:jsr311-api</exclude> |
| <exclude>javax.xml.bind:jaxb-api</exclude> |
| <exclude>javax.xml.stream:stax-api</exclude> |
| <exclude>log4j:log4j</exclude> |
| <exclude>net.java.dev.jets3t:jets3t</exclude> |
| <exclude>net.jcip:jcip-annotations</exclude> |
| <exclude>net.minidev:json-smart</exclude> |
| |
| <exclude>org.apache.avro:avro</exclude> |
| <exclude>org.apache.commons:commons-compress</exclude> |
| <exclude>org.apache.commons:commons-math3</exclude> |
| <exclude>org.apache.curator:curator-client</exclude> |
| <exclude>org.apache.curator:curator-framework</exclude> |
| <exclude>org.apache.curator:curator-recipes</exclude> |
| <exclude>org.apache.hadoop:hadoop-annotations</exclude> |
| <exclude>org.apache.hadoop:hadoop-auth</exclude> |
| <exclude>org.apache.htrace:htrace-core4</exclude> |
| <exclude>org.apache.httpcomponents:httpclient</exclude> |
| <exclude>org.apache.httpcomponents:httpcore</exclude> |
| <exclude>org.apache.kerby:kerb-admin</exclude> |
| <exclude>org.apache.kerby:kerb-client</exclude> |
| <exclude>org.apache.kerby:kerb-common</exclude> |
| <exclude>org.apache.kerby:kerb-core</exclude> |
| <exclude>org.apache.kerby:kerb-crypto</exclude> |
| <exclude>org.apache.kerby:kerb-identity</exclude> |
| <exclude>org.apache.kerby:kerb-server</exclude> |
| <exclude>org.apache.kerby:kerb-simplekdc</exclude> |
| <exclude>org.apache.kerby:kerb-util</exclude> |
| <exclude>org.apache.kerby:kerby-asn1</exclude> |
| <exclude>org.apache.kerby:kerby-config</exclude> |
| <exclude>org.apache.kerby:kerby-pkix</exclude> |
| <exclude>org.apache.kerby:kerby-util</exclude> |
| <exclude>org.apache.zookeeper:zookeeper</exclude> |
| |
| <exclude>org.codehaus.jackson:jackson-core-asl</exclude> |
| <exclude>org.codehaus.jackson:jackson-jaxrs</exclude> |
| <exclude>org.codehaus.jackson:jackson-mapper-asl</exclude> |
| <exclude>org.codehaus.jackson:jackson-xc</exclude> |
| <exclude>org.codehaus.jettison:jettison</exclude> |
| <exclude>org.mortbay.jetty:jetty-sslengine</exclude> |
| <exclude>org.mortbay.jetty:jetty-util</exclude> |
| <exclude>org.mortbay.jetty:jetty</exclude> |
| <exclude>org.slf4j:slf4j-api</exclude> |
| <exclude>org.slf4j:slf4j-log4j12</exclude> |
| <exclude>org.tukaani:xz</exclude> |
| <exclude>org.xerial.snappy:snappy-java</exclude> |
| <exclude>xmlenc:xmlenc</exclude> |
| </excludes> |
| </artifactSet> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!--Now unpack the shaded jar made above so the shaded classes |
| are available to subsequent modules--> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>unpack</id> |
| <phase>package</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>${project.groupId}</groupId> |
| <artifactId>${project.artifactId}</artifactId> |
| <version>${project.version}</version> |
| <classifier>sources</classifier> |
| <type>jar</type> |
| <overWrite>true</overWrite> |
| <outputDirectory>${basedir}/${shaded.sources.dir}</outputDirectory> |
| <includes>**/*.java</includes> |
| </artifactItem> |
| </artifactItems> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-install-plugin</artifactId> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| </project> |