PHOENIX-3240 Create phoenix-$VERSION-pig shaded jar Running inside of Pig's environment creates some issues where Pig is already providing some versions of dependencies (e.g. joda-time). Create a custom JAR specifically to be used with Pig.
Closes apache/phoenix#217 Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/d507ee7e Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/d507ee7e Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/d507ee7e Branch: refs/heads/calcite Commit: d507ee7eb34bd058c320c6917d3609e5b7411e98 Parents: eaf99f2 Author: Josh Elser <[email protected]> Authored: Mon Oct 10 18:03:44 2016 -0400 Committer: Josh Elser <[email protected]> Committed: Tue Oct 11 14:14:44 2016 -0400 ---------------------------------------------------------------------- .../src/build/components/all-common-jars.xml | 10 +- phoenix-client/pom.xml | 6 + phoenix-pig/pom.xml | 263 +++++++++++++++++++ 3 files changed, 278 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/d507ee7e/phoenix-assembly/src/build/components/all-common-jars.xml ---------------------------------------------------------------------- diff --git a/phoenix-assembly/src/build/components/all-common-jars.xml b/phoenix-assembly/src/build/components/all-common-jars.xml index 3d334db..e68016f 100644 --- a/phoenix-assembly/src/build/components/all-common-jars.xml +++ b/phoenix-assembly/src/build/components/all-common-jars.xml @@ -78,7 +78,15 @@ <directory>${project.basedir}/../phoenix-pig/target/</directory> <outputDirectory>lib</outputDirectory> <includes> - <include>phoenix-*.jar</include> + <include>phoenix-pig*.jar</include> + </includes> + <fileMode>0644</fileMode> + </fileSet> + <fileSet> + <directory>${project.basedir}/../phoenix-pig/target/</directory> + <outputDirectory>/</outputDirectory> + <includes> + <include>phoenix-*-pig.jar</include> </includes> <fileMode>0644</fileMode> </fileSet> http://git-wip-us.apache.org/repos/asf/phoenix/blob/d507ee7e/phoenix-client/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-client/pom.xml b/phoenix-client/pom.xml index 2edf9d5..7992827 100644 --- a/phoenix-client/pom.xml +++ b/phoenix-client/pom.xml @@ -369,6 +369,12 @@ <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-pig</artifactId> + <exclusions> + <exclusion> + <groupId>org.apache.pig</groupId> + <artifactId>pig</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> http://git-wip-us.apache.org/repos/asf/phoenix/blob/d507ee7e/phoenix-pig/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml index 860f80f..f6c3827 100644 --- a/phoenix-pig/pom.xml +++ b/phoenix-pig/pom.xml @@ -33,6 +33,7 @@ <properties> <top.dir>${project.basedir}/..</top.dir> + <shaded.package>org.apache.phoenix.shaded</shaded.package> </properties> <dependencies> @@ -188,6 +189,268 @@ <artifactId>maven-dependency-plugin</artifactId> <version>${maven-dependency-plugin.version}</version> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <finalName>phoenix-${project.version}-pig</finalName> + <shadedArtifactAttached>false</shadedArtifactAttached> + <promoteTransitiveDependencies>true</promoteTransitiveDependencies> + <shadeTestJar>false</shadeTestJar> + <transformers> + <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> + <artifactSet> + <includes> + <include>*:*</include> + </includes> + <excludes> + <exclude>org.apache.phoenix:phoenix-client</exclude> + <exclude>org.apache.pig:pig</exclude> + <exclude>joda-time:joda-time</exclude> + <exclude>xom:xom</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> + </excludes> + </filter> + </filters> + <relocations> + <!-- COM relocation --> + <relocation> + <pattern>com.codahale</pattern> + <shadedPattern>${shaded.package}.com.codahale</shadedPattern> + </relocation> + <relocation> + <pattern>com.fasterxml</pattern> + <shadedPattern>${shaded.package}.com.fasterxml</shadedPattern> + </relocation> + <relocation> + <pattern>com.google.common</pattern> + <shadedPattern>${shaded.package}.com.google.common</shadedPattern> + </relocation> + <relocation> + <pattern>com.jamesmurty</pattern> + <shadedPattern>${shaded.package}.com.jamesmurty</shadedPattern> + </relocation> + <relocation> + <pattern>com.jcraft</pattern> + <shadedPattern>${shaded.package}.com.jcraft</shadedPattern> + </relocation> + <relocation> + <pattern>com.lmax</pattern> + <shadedPattern>${shaded.package}.com.lmax</shadedPattern> + </relocation> + <relocation> + <pattern>com.sun.jersey</pattern> + <shadedPattern>${shaded.package}.com.sun.jersey</shadedPattern> + </relocation> + <relocation> + <pattern>com.thoughtworks</pattern> + <shadedPattern>${shaded.package}.com.thoughtworks</shadedPattern> + </relocation> + <relocation> + <pattern>com.yammer</pattern> + <shadedPattern>${shaded.package}.com.yammer</shadedPattern> + </relocation> + <!-- IO relocations --> + <relocation> + <pattern>io.netty</pattern> + <shadedPattern>${shaded.package}.io.netty</shadedPattern> + </relocation> + <!-- ORG relocations --> + <relocation> + <pattern>org.antlr</pattern> + <shadedPattern>${shaded.package}.org.antlr</shadedPattern> + </relocation> + <relocation> + <pattern>org.aopalliance</pattern> + <shadedPattern>${shaded.package}.org.aopalliance</shadedPattern> + </relocation> + <relocation> + <pattern>org.codehaus</pattern> + <shadedPattern>${shaded.package}.org.codehaus</shadedPattern> + </relocation> + <relocation> + <pattern>org.fusesource</pattern> + <shadedPattern>${shaded.package}.org.fusesource</shadedPattern> + </relocation> + <relocation> + <pattern>org.hamcrest</pattern> + <shadedPattern>${shaded.package}.org.hamcrest</shadedPattern> + </relocation> + <relocation> + <pattern>org.hsqldb</pattern> + <shadedPattern>${shaded.package}.org.hsqldb</shadedPattern> + </relocation> + <relocation> + <pattern>org.iq80</pattern> + <shadedPattern>${shaded.package}.org.iq80</shadedPattern> + </relocation> + <relocation> + <pattern>org.jamon</pattern> + <shadedPattern>${shaded.package}.org.jamon</shadedPattern> + </relocation> + <relocation> + <pattern>org.jboss</pattern> + <shadedPattern>${shaded.package}.org.jboss</shadedPattern> + </relocation> + <relocation> + <pattern>org.jcodings</pattern> + <shadedPattern>${shaded.package}.org.jcodings</shadedPattern> + </relocation> + <relocation> + <pattern>org.jets3t</pattern> + <shadedPattern>${shaded.package}.org.jets3t</shadedPattern> + </relocation> + <relocation> + <pattern>org.joni</pattern> + <shadedPattern>${shaded.package}.org.joni</shadedPattern> + </relocation> + <relocation> + <pattern>org.junit</pattern> + <shadedPattern>${shaded.package}.org.junit</shadedPattern> + </relocation> + <relocation> + <pattern>org.kosmix</pattern> + <shadedPattern>${shaded.package}.org.kosmix</shadedPattern> + </relocation> + <relocation> + <pattern>org.mortbay</pattern> + <shadedPattern>${shaded.package}.org.mortbay</shadedPattern> + </relocation> + <relocation> + <pattern>org.objectweb</pattern> + <shadedPattern>${shaded.package}.org.objectweb</shadedPattern> + </relocation> + <relocation> + <pattern>org.stringtemplate</pattern> + <shadedPattern>${shaded.package}.org.stringtemplate</shadedPattern> + </relocation> + <relocation> + <pattern>org.tukaani</pattern> + <shadedPattern>${shaded.package}.org.tukaani</shadedPattern> + </relocation> + <relocation> + <pattern>org.znerd</pattern> + <shadedPattern>${shaded.package}.org.znerd</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.avro</pattern> + <shadedPattern>${shaded.package}.org.apache.avro</shadedPattern> + </relocation> + <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> + </excludes> + </relocation> + <relocation> + <pattern>org.apache.directory</pattern> + <shadedPattern>${shaded.package}.org.apache.directory</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.http</pattern> + <shadedPattern>${shaded.package}.org.apache.http</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.jasper</pattern> + <shadedPattern>${shaded.package}.org.apache.jasper</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.jute</pattern> + <shadedPattern>${shaded.package}.org.apache.jute</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.mina</pattern> + <shadedPattern>${shaded.package}.org.apache.mina</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.oro</pattern> + <shadedPattern>${shaded.package}.org.apache.oro</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.taglibs</pattern> + <shadedPattern>${shaded.package}.org.apache.taglibs</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.thrift</pattern> + <shadedPattern>${shaded.package}.org.apache.thrift</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.tools</pattern> + <shadedPattern>${shaded.package}.org.apache.tools</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.twill</pattern> + <shadedPattern>${shaded.package}.org.apache.twill</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.velocity</pattern> + <shadedPattern>${shaded.package}.org.apache.velocity</shadedPattern> + </relocation> + <relocation> + <pattern>org.apache.zookeeper</pattern> + <shadedPattern>${shaded.package}.org.apache.zookeeper</shadedPattern> + </relocation> + <!-- NET relocations --> + <relocation> + <pattern>net</pattern> + <shadedPattern>${shaded.package}.net</shadedPattern> + </relocation> + <!-- Misc relocations --> + <relocation> + <pattern>antlr</pattern> + <shadedPattern>${shaded.package}.antlr</shadedPattern> + </relocation> + <relocation> + <pattern>it.unimi</pattern> + <shadedPattern>${shaded.package}.it.unimi</shadedPattern> + </relocation> + <relocation> + <pattern>jline</pattern> + <shadedPattern>${shaded.package}.jline</shadedPattern> + </relocation> + <relocation> + <pattern>junit</pattern> + <shadedPattern>${shaded.package}.junit</shadedPattern> + </relocation> + </relocations> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project>
