| <?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.2.0-SNAPSHOT</version> |
| </parent> |
| <artifactId>phoenix-server-${hbase.suffix}</artifactId> |
| <name>Phoenix Server JAR</name> |
| <description>Phoenix HBase Server Side JAR</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> |
| <shaded.package>org.apache.phoenix.shaded</shaded.package> |
| </properties> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-site-plugin</artifactId> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| <plugin> |
| <!--Make it so assembly:single does nothing in here--> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <skipAssembly>true</skipAssembly> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-install-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> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| <configuration> |
| <dependencyReducedPomLocation>${basedir}/target/pom.xml</dependencyReducedPomLocation> |
| <promoteTransitiveDependencies>true</promoteTransitiveDependencies> |
| <shadeTestJar>false</shadeTestJar> |
| <transformers> |
| <transformer |
| implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> |
| <addHeader>false</addHeader> |
| </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> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> |
| </transformers> |
| <artifactSet> |
| <includes> |
| <include>*:*</include> |
| </includes> |
| <!-- Exclude things that would be available in the standard location on the hbase classpath. |
| This does *not* exclude transitive dependencies for these. To exclude an entire "tree" |
| of dependencies, we need to mark those as "provided" dependencies below. --> |
| <excludes> |
| <exclude>junit:junit</exclude> |
| <exclude>org.hamcrest:hamcrest-core</exclude> |
| <exclude>jline:jline</exclude> |
| <exclude>org.eclipse.jetty:*</exclude> |
| <exclude>org.apache.phoenix:phoenix-server</exclude> |
| <exclude>sqlline:sqlline</exclude> |
| <exclude>log4j:log4j</exclude> |
| <exclude>org.slf4j:slf4j-api</exclude> |
| <exclude>org.slf4j:slf4j-log4j12</exclude> |
| </excludes> |
| </artifactSet> |
| <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>LICENSE.*</exclude> |
| <exclude>NOTICE.*</exclude> |
| <exclude>NOTICE</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| <relocations> |
| <relocation> |
| <pattern>org.apache.commons</pattern> |
| <shadedPattern>${shaded.package}.org.apache.commons</shadedPattern> |
| <excludes> |
| <exclude>org.apache.commons.csv.**</exclude> |
| <exclude>org.apache.commons.logging.**</exclude> |
| <exclude>org.apache.commons.configuration.**</exclude> |
| <exclude>org.apache.commons.configuration2.**</exclude> |
| </excludes> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.htrace</pattern> |
| <shadedPattern>${shaded.package}.org.apache.htrace</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.http</pattern> |
| <shadedPattern>${shaded.package}.org.apache.http</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.antlr</pattern> |
| <shadedPattern>${shaded.package}.org.antlr</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.iq80</pattern> |
| <shadedPattern>${shaded.package}.org.iq80</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jcodings</pattern> |
| <shadedPattern>${shaded.package}.org.jcodings</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.joda</pattern> |
| <shadedPattern>${shaded.package}.org.joda</shadedPattern> |
| </relocation> |
| <!-- Tephra and dependencies --> |
| <relocation> |
| <pattern>co.cask.tephra</pattern> |
| <shadedPattern>${shaded.package}.co.cask.tephra</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.tephra</pattern> |
| <shadedPattern>${shaded.package}.org.apache.tephra</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.omid</pattern> |
| <shadedPattern>${shaded.package}.org.apache.omid</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons-collections4</pattern> |
| <shadedPattern>${shaded.package}.org.apache.commons-collections4</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jboss.netty:netty</pattern> |
| <shadedPattern>${shaded.package}.org.jboss.netty:netty</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.twill</pattern> |
| <shadedPattern>${shaded.package}.org.apache.twill</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.thrift</pattern> |
| <shadedPattern>${shaded.package}.org.apache.thrift</shadedPattern> |
| </relocation> |
| |
| <relocation> |
| <!-- This would shade protobuf, but we don't package it as hbase provides it |
| for all CPEPs. Similarly, we need to exclude the package so that |
| Phoenix looks for it in the "standard" package. --> |
| <pattern>com.google</pattern> |
| <shadedPattern>${shaded.package}.com.google</shadedPattern> |
| <excludes> |
| <exclude>com.google.protobuf.**</exclude> |
| </excludes> |
| </relocation> |
| <relocation> |
| <pattern>com.codahale.metrics</pattern> |
| <shadedPattern>${shaded.package}.com.codahale.metrics</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>it.unimi.dsi.fastutil</pattern> |
| <shadedPattern>${shaded.package}.it.unimi.dsi.fastutil</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.ibm.icu</pattern> |
| <shadedPattern>${shaded.package}.com.ibm.icu</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.force</pattern> |
| <shadedPattern>${shaded.package}.com.force</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.clearspring</pattern> |
| <shadedPattern>${shaded.package}.com.clearspring</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.joni</pattern> |
| <shadedPattern>${shaded.package}.org.joni</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jcodings</pattern> |
| <shadedPattern>${shaded.package}.org.jcodings</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.iq80.snappy</pattern> |
| <shadedPattern>${shaded.package}.org.iq80.snappy</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>edu.umd.cs.findbugs.annotations</pattern> |
| <shadedPattern>${shaded.package}.edu.umd.cs.findbugs.annotations</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>net.jcip.annotations</pattern> |
| <shadedPattern>${shaded.package}.net.jcip.annotations</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.fasterxml.jackson</pattern> |
| <shadedPattern>${shaded.package}.com.fasterxml.jackson</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax.annotation</pattern> |
| <shadedPattern>${shaded.package}.javax.annotation</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.lmax.disruptor</pattern> |
| <shadedPattern>${shaded.package}.com.lmax.disruptor</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>javax.servlet</pattern> |
| <shadedPattern>${shaded.package}.javax.servlet</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.aopalliance</pattern> |
| <shadedPattern>${shaded.package}.org.aopalliance</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.objectweb.asm</pattern> |
| <shadedPattern>${shaded.package}.org.objectweb.asm</shadedPattern> |
| </relocation> |
| </relocations> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.phoenix</groupId> |
| <artifactId>phoenix-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.phoenix</groupId> |
| <artifactId>phoenix-hbase-compat-${hbase.compat.version}</artifactId> |
| <optional>false</optional> |
| </dependency> |
| <!-- hbase's classpath will provide these, mark them as provided to prevent |
| them, and their transitive dependencies, from being included in the |
| shaded jar. --> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-annotations</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-common</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-client</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-server</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-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-miscellaneous</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase.thirdparty</groupId> |
| <artifactId>hbase-shaded-protobuf</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</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-mapreduce-client-core</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-client</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| <profiles> |
| <profile> |
| <id>phoenix-hbase-compat-2.3.0</id> |
| <!-- keep dependency plugin happy --> |
| <activation> |
| <property> |
| <name>hbase.profile</name> |
| <value>2.3</value> |
| </property> |
| </activation> |
| <properties> |
| <hbase.profile>2.3</hbase.profile> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper-jute</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>phoenix-hbase-compat-2.4.0</id> |
| <!-- keep dependency plugin happy --> |
| <activation> |
| <property> |
| <name>hbase.profile</name> |
| <value>2.4.0</value> |
| </property> |
| </activation> |
| <properties> |
| <hbase.profile>2.4.0</hbase.profile> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper-jute</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>phoenix-hbase-compat-2.4.1</id> |
| <!-- keep dependency plugin happy --> |
| <activation> |
| <property> |
| <name>hbase.profile</name> |
| <value>2.4</value> |
| </property> |
| </activation> |
| <properties> |
| <hbase.profile>2.4.0</hbase.profile> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper-jute</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>phoenix-hbase-compat-2.4.1-default</id> |
| <!-- keep dependency plugin happy --> |
| <activation> |
| <property> |
| <name>!hbase.profile</name> |
| </property> |
| </activation> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper-jute</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| </profiles> |
| </project> |