| <?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.phoenix</groupId> |
| <artifactId>phoenix</artifactId> |
| <version>5.3.0-SNAPSHOT</version> |
| </parent> |
| <artifactId>phoenix-mapreduce-byo-shaded-hbase-${hbase.suffix}</artifactId> |
| <name>Phoenix Mapreduce</name> |
| <description>Phoenix Mapreduce JAR for use with the "hbase mapredcp" classpath</description> |
| <packaging>jar</packaging> |
| <properties> |
| <!-- Don't make a test-jar --> |
| <maven.test.skip>true</maven.test.skip> |
| <!-- Don't make a source-jar --> |
| <source.skip>true</source.skip> |
| <license.bundles.dependencies>true</license.bundles.dependencies> |
| </properties> |
| |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-site-plugin</artifactId> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <!-- RAT gets really confused on the shaded subprojects, |
| and there is nothing to audit here --> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <configuration> |
| <ignoredDependencies> |
| <ignoredDependency>*</ignoredDependency> |
| </ignoredDependencies> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <configuration> |
| <filters> |
| <filter> |
| <artifact>*:*</artifact> |
| <excludes> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| <exclude>META-INF/license/*</exclude> |
| <exclude>META-INF/NOTICE</exclude> |
| <exclude>LICENSE.*</exclude> |
| <exclude>NOTICE.*</exclude> |
| <exclude>NOTICE</exclude> |
| <exclude>README*</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>org.apache.hadoop:hadoop-yarn-common</artifact> |
| <excludes> |
| <exclude>org/apache/hadoop/yarn/factories/package-info.class</exclude> |
| <exclude>org/apache/hadoop/yarn/util/package-info.class</exclude> |
| <exclude>org/apache/hadoop/yarn/factory/providers/package-info.class</exclude> |
| <exclude>org/apache/hadoop/yarn/client/api/impl/package-info.class</exclude> |
| <exclude>org/apache/hadoop/yarn/client/api/package-info.class</exclude> |
| <exclude>webapps/**</exclude> |
| </excludes> |
| </filter> |
| <!-- Phoenix specific --> |
| <filter> |
| <artifact>org.apache.commons:commons-math3</artifact> |
| <excludes> |
| <exclude>assets/**</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>org.apache.hbase:hbase-server</artifact> |
| <excludes> |
| <exclude>hbase-webapps/**</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>org.apache.hbase.thirdparty:*</artifact> |
| <excludes> |
| <exclude>/**</exclude> |
| <exclude>webapps/**</exclude> |
| </excludes> |
| </filter> |
| <!-- Phoenix specific --> |
| </filters> |
| <transformers> |
| <transformer |
| implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> |
| <transformer |
| implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> |
| <resource>csv-bulk-load-config.properties</resource> |
| <file> |
| ${project.basedir}/../config/csv-bulk-load-config.properties |
| </file> |
| </transformer> |
| <transformer |
| implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> |
| <resource>README.md</resource> |
| <file>${project.basedir}/../README.md</file> |
| </transformer> |
| <transformer |
| implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> |
| <resource>LICENSE.txt</resource> |
| <file>${project.basedir}/../LICENSE</file> |
| </transformer> |
| <transformer |
| implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> |
| <resource>NOTICE</resource> |
| <file>${project.basedir}/../NOTICE</file> |
| </transformer> |
| </transformers> |
| <relocations> |
| <relocation> |
| <pattern>org/</pattern> |
| <shadedPattern>${shaded.package}.org.</shadedPattern> |
| <excludes> |
| <exclude>org/apache/hadoop/**</exclude> |
| <!-- Our non-shaded htrace and logging libraries --> |
| <exclude>org/apache/htrace/**</exclude> |
| <exclude>org/slf4j/**</exclude> |
| <exclude>org/apache/commons/logging/**</exclude> |
| <exclude>org/apache/log4j/**</exclude> |
| <exclude>org/apache/logging/log4j/**</exclude> |
| <!-- Not the org/ packages that are a part of the jdk --> |
| <exclude>org/ietf/jgss/**</exclude> |
| <exclude>org/omg/**</exclude> |
| <exclude>org/w3c/dom/**</exclude> |
| <exclude>org/xml/sax/**</exclude> |
| <!-- Not needed for client, we set this to provided --> |
| <exclude>org/eclipse/jetty/**</exclude> |
| <!-- Extras compared to Hadoop --> |
| <!-- Hbase classes - Maybe these could be shaded as well ? --> |
| <exclude>org/apache/hbase/**</exclude> |
| <!-- Phoenix classes --> |
| <exclude>org/apache/phoenix/**</exclude> |
| <exclude>org/apache/omid/**</exclude> |
| <!-- See PHOENIX-7118 |
| We expect this to come from the unshaded hadoop on the classpath. |
| This won't work if hadoop-shaded-client is used. --> |
| <exclude>org/apache/commons/configuration2/**</exclude> |
| </excludes> |
| </relocation> |
| |
| <!-- We cannot use the more elegant shading rules in -client |
| and -server for com packages, but it SHOULD be equivalent, except for the |
| protobuf change for hbase-shaded-mapreduce / client compatibility --> |
| <relocation> |
| <pattern>com/beust/</pattern> |
| <shadedPattern>${shaded.package}.com.beust.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/clearspring/</pattern> |
| <shadedPattern>${shaded.package}.com.clearspring.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/codahale/</pattern> |
| <shadedPattern>${shaded.package}.come.codahale.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/fasterxml/</pattern> |
| <shadedPattern>${shaded.package}.com.fasterxml.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/force/</pattern> |
| <shadedPattern>${shaded.package}.com.force.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/google/gson/</pattern> |
| <shadedPattern>${shaded.package}.com.google.gson.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/google/inject/</pattern> |
| <shadedPattern>${shaded.package}.com.google.inject.</shadedPattern> |
| </relocation> |
| <!-- This is protobuf 2.5.0 which is shaded to this package in hbase-shaded-mapreduce, |
| not the modified protobuf 3.x from hbase-thirdparty --> |
| <relocation> |
| <pattern>com/google/protobuf/</pattern> |
| <shadedPattern>${hbase.shaded.package}.com.google.protobuf.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/ibm/</pattern> |
| <shadedPattern>${shaded.package}.com.ibm.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/lmax/</pattern> |
| <shadedPattern>${shaded.package}.com.lmax.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/sun/jna/</pattern> |
| <shadedPattern>${shaded.package}.com.sun.jna.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com/squareup</pattern> |
| <shadedPattern>${shaded.package}.com.squareup.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>io/</pattern> |
| <shadedPattern>${shaded.package}.io.</shadedPattern> |
| <excludes> |
| <!-- Exclude config keys for Hadoop that look like package names --> |
| <exclude>io/compression/**</exclude> |
| <exclude>io/mapfile/**</exclude> |
| <exclude>io/map/index/*</exclude> |
| <exclude>io/seqfile/**</exclude> |
| <exclude>io/file/buffer/size</exclude> |
| <exclude>io/skip/checksum/errors</exclude> |
| <exclude>io/sort/*</exclude> |
| <exclude>io/serializations</exclude> |
| </excludes> |
| </relocation> |
| <!-- JSRs that haven't made it to inclusion in J2SE --> |
| <relocation> |
| <pattern>javax/el/</pattern> |
| <shadedPattern>${shaded.package}.javax.el.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/cache/</pattern> |
| <shadedPattern>${shaded.package}.javax.cache.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/servlet/jsp/</pattern> |
| <shadedPattern>${shaded.package}.javax.servlet.jsp.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/ws/</pattern> |
| <shadedPattern>${shaded.package}.javax.ws.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/annotation/</pattern> |
| <shadedPattern>${shaded.package}.javax.annotation.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/inject/</pattern> |
| <shadedPattern>${shaded.package}.javax.inject.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/validation/</pattern> |
| <shadedPattern>${shaded.package}.javax.validation.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/xml/bind/</pattern> |
| <shadedPattern>${shaded.package}.javax.xml.bind.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax/activation/</pattern> |
| <shadedPattern>${shaded.package}.javax.activation.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>net/</pattern> |
| <shadedPattern>${shaded.package}.net.</shadedPattern> |
| <excludes> |
| <!-- Exclude config keys for Hadoop that look like package names --> |
| <exclude>net/topology/**</exclude> |
| </excludes> |
| </relocation> |
| <!-- okio declares a top level package instead of nested --> |
| <relocation> |
| <pattern>okio/</pattern> |
| <shadedPattern>${shaded.package}.okio.</shadedPattern> |
| </relocation> |
| <!-- Phoenix specific relocations --> |
| <relocation> |
| <pattern>it/</pattern> |
| <shadedPattern>${shaded.package}.it.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javassist/</pattern> |
| <shadedPattern>${shaded.package}.javassist.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>jersey/</pattern> |
| <shadedPattern>${shaded.package}.jersey.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>jline/</pattern> |
| <shadedPattern>${shaded.package}.jline.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>mozilla/</pattern> |
| <shadedPattern>${shaded.package}.mozilla.</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>tables/</pattern> |
| <shadedPattern>${shaded.package}.tables.</shadedPattern> |
| </relocation> |
| <!-- Phoenix specific relocations end --> |
| </relocations> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>lite-shaded</id> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| <configuration> |
| <promoteTransitiveDependencies>true</promoteTransitiveDependencies> |
| <shadeTestJar>false</shadeTestJar> |
| <createSourcesJar>${shadeSources}</createSourcesJar> |
| <dependencyReducedPomLocation>${basedir}/target/pom.xml</dependencyReducedPomLocation> |
| <artifactSet> |
| <includes> |
| <include>*:*</include> |
| </includes> |
| <excludes> |
| <exclude>org.apache.phoenix:phoenix-client</exclude> |
| <exclude>xom:xom</exclude> |
| </excludes> |
| </artifactSet> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <dependencies> |
| <!-- These must not be moved to a parent module, see PHOENIX-6377 --> |
| <!-- Depend on all other internal projects --> |
| <dependency> |
| <groupId>org.apache.phoenix</groupId> |
| <artifactId>phoenix-core-server</artifactId> |
| <exclusions> |
| <!-- 5.2 no longer uses reload4j, but we still exclude in case something pulls these |
| transitively --> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-reload4j</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>ch.qos.reload4j</groupId> |
| <artifactId>reload4j</artifactId> |
| </exclusion> |
| <!-- These are coming from transitive dependencies --> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.phoenix</groupId> |
| <artifactId>phoenix-hbase-compat-${hbase.compat.version}</artifactId> |
| <optional>false</optional> |
| </dependency> |
| |
| <!-- Exclude servlet and Jetty. We don't need it, and it causes problems with minicluster --> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-server</artifactId> |
| <scope>provided</scope> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-util</artifactId> |
| <scope>provided</scope> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-util-ajax</artifactId> |
| <scope>provided</scope> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlet</artifactId> |
| <scope>provided</scope> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-webapp</artifactId> |
| <scope>provided</scope> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>javax.servlet-api</artifactId> |
| <scope>provided</scope> |
| <version>${javax.servlet-api.version}</version> |
| </dependency> |
| |
| <!-- Mark every Hadoop jar as provided --> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-mapreduce-client-core</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-annotations</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-auth</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-yarn-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-hdfs</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-hdfs-client</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-distcp</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-client</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-mapreduce-client-jobclient</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-mapreduce-client-common</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <!-- Mark HBase as provided, too --> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-client</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-common</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-mapreduce</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-replication</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-endpoint</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-protocol</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-protocol-shaded</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-server</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-hadoop-compat</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-hadoop2-compat</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-zookeeper</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase.thirdparty</groupId> |
| <artifactId>hbase-shaded-netty</artifactId> |
| <!-- random version, for exclusion only --> |
| <version>4.0.0</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase.thirdparty</groupId> |
| <artifactId>hbase-shaded-miscellaneous</artifactId> |
| <!-- random version, for exclusion only --> |
| <version>4.0.0</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase.thirdparty</groupId> |
| <artifactId>hbase-shaded-protobuf</artifactId> |
| <!-- random version, for exclusion only --> |
| <version>4.0.0</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <!-- provided by Hadoop --> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-configuration2</artifactId> |
| <!-- random version, for exclusion only --> |
| <version>2.10.1</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| |
| <!-- Other dependencies we don't want to shade in, but are not transitively excluded by the |
| above for some reason --> |
| <dependency> |
| <!-- HBase-shaded already provides this --> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <!-- random version, for exclusion only --> |
| <version>11.0.2</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.github.stephenc.findbugs</groupId> |
| <artifactId>findbugs-annotations</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| </project> |