| <?xml version="1.0" encoding="UTF-8"?> |
| <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/maven-v4_0_0.xsd"> |
| <!-- |
| /** |
| * 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. |
| */ |
| |
| |
| ON MVN COMPILE NOT WORKING |
| |
| If you wondering why 'mvn compile' does not work building HBase |
| (in particular, if you are doing it for the first time), instead do |
| 'mvn package'. If you are interested in the full story, see |
| https://issues.apache.org/jira/browse/HBASE-6795. |
| |
| --> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>org.apache.hbase.thirdparty</groupId> |
| <artifactId>hbase-thirdparty</artifactId> |
| <version>3.5.2-SNAPSHOT</version> |
| <relativePath>..</relativePath> |
| </parent> |
| <artifactId>hbase-shaded-jersey</artifactId> |
| <name>Apache HBase Relocated (Shaded) Jersey Libs</name> |
| <description> |
| Pulls down Jersey, relocates it and makes a far jar. |
| </description> |
| <build> |
| <plugins> |
| <plugin> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>${basedir}</directory> |
| <includes> |
| <include>dependency-reduced-pom.xml</include> |
| </includes> |
| </fileset> |
| </filesets> |
| </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> |
| <shadeSourcesContent>true</shadeSourcesContent> |
| <createSourcesJar>true</createSourcesJar> |
| <relocations> |
| <relocation> |
| <pattern>org.glassfish</pattern> |
| <shadedPattern>${rename.offset}.org.glassfish</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>jersey</pattern> |
| <shadedPattern>${rename.offset}.jersey</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.sun.research</pattern> |
| <shadedPattern>${rename.offset}.com.sun.research</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.aopalliance</pattern> |
| <shadedPattern>${rename.offset}.org.aopalliance</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jvnet.hk2</pattern> |
| <shadedPattern>${rename.offset}.org.jvnet.hk2</shadedPattern> |
| </relocation> |
| </relocations> |
| <artifactSet> |
| <excludes> |
| <!-- |
| Anything added here needs to be excluded from the jar that pulls it in |
| also else we give an odd signal in the META-INF/DEPENDENCIES that we |
| produce. See below for how to exclusion of transitive dependencies. |
| --> |
| <exclude>jakarta.ws.rs:jakarta.ws.rs-api</exclude> |
| <exclude>jakarta.annotation:jakarta.annotation-api</exclude> |
| <exclude>jakarta.validation:jakarta.validation-api</exclude> |
| <exclude>org.glassfish.hk2.external:jakarta.inject</exclude> |
| <exclude>org.javassist:javassist</exclude> |
| <!-- On the "next" build, exclude a lingering shaded jar if it exists (user did not `clean`). |
| Maven will happily pick up the previous shaded jar and try to include that in the N+1th build |
| if we don't exclude it. This will result in a failure in the ServicesResourceTransformer claiming |
| that we've already packaged a services file once. --> |
| <exclude>org.apache.hbase.thirdparty:hbase-shaded-jersey</exclude> |
| </excludes> |
| </artifactSet> |
| <transformers> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"> |
| </transformer> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> |
| <addHeader>false</addHeader> |
| </transformer> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> |
| </transformers> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <!-- |
| There are some classes under META-INF in jersey-common jar, for supporting multiple jdks, |
| we should also relocate them. |
| --> |
| <execution> |
| <id>relocate-jersey-jdk11-support</id> |
| <phase>package</phase> |
| <configuration> |
| <target> |
| <echo message="unjar" /> |
| <unzip src="${project.build.directory}/${project.artifactId}-${project.version}.jar" dest="${project.build.directory}/unpacked/" /> |
| <echo message="Rename jersey versions in META-INF" /> |
| <mkdir dir="${project.build.directory}/unpacked/META-INF/versions/11/${rename.offset.dir}" /> |
| <move todir="${project.build.directory}/unpacked/META-INF/versions/11/${rename.offset.dir}"> |
| <fileset dir="${project.build.directory}/unpacked/META-INF/versions/11" /> |
| </move> |
| <echo message="Redo jar" /> |
| <jar destfile="${project.build.directory}/${project.artifactId}-${project.version}.jar" basedir="${project.build.directory}/unpacked" /> |
| </target> |
| </configuration> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <dependencies> |
| <dependency> |
| <groupId>org.glassfish.jersey.containers</groupId> |
| <artifactId>jersey-container-servlet-core</artifactId> |
| <version>${jersey.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.core</groupId> |
| <artifactId>jersey-client</artifactId> |
| <version>${jersey.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.core</groupId> |
| <artifactId>jersey-server</artifactId> |
| <version>${jersey.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.inject</groupId> |
| <artifactId>jersey-hk2</artifactId> |
| <version>${jersey.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.ws.rs</groupId> |
| <artifactId>jakarta.ws.rs-api</artifactId> |
| <version>${jakarta.ws.rs-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.annotation</groupId> |
| <artifactId>jakarta.annotation-api</artifactId> |
| <version>${jakarta.annotation-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.validation</groupId> |
| <artifactId>jakarta.validation-api</artifactId> |
| <version>${jakarta.validation-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.hk2.external</groupId> |
| <artifactId>jakarta.inject</artifactId> |
| <version>${jakarta.inject.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.javassist</groupId> |
| <artifactId>javassist</artifactId> |
| <version>${javassist.version}</version> |
| </dependency> |
| </dependencies> |
| </project> |