HBASE-26871 shaded mapreduce and shaded byo-hadoop client artifacts contain no classes (#4279)

- revert poms for both modules
- add a test to the shaded artifact validation that checks for java classes

Signed-off-by: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
Sean Busbey 2022-03-26 11:02:08 -05:00 committed by GitHub
parent c73ef2c0c8
commit bd5b447322
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 506 additions and 410 deletions

View File

@ -114,6 +114,10 @@ declare -i bad_artifacts=0
declare -a bad_contents declare -a bad_contents
for artifact in "${artifact_list[@]}"; do for artifact in "${artifact_list[@]}"; do
bad_contents=($(jar tf "${artifact}" | grep -v -E "${allowed_expr}" || true)) bad_contents=($(jar tf "${artifact}" | grep -v -E "${allowed_expr}" || true))
class_count=$(jar tf "${artifact}" | grep -c -E '\.class$' || true)
if [ ${#bad_contents[@]} -eq 0 ] && [ "${class_count}" -lt 1 ]; then
bad_contents=("The artifact contains no java class files.")
fi
if [ ${#bad_contents[@]} -gt 0 ]; then if [ ${#bad_contents[@]} -gt 0 ]; then
echo "[ERROR] Found artifact with unexpected contents: '${artifact}'" echo "[ERROR] Found artifact with unexpected contents: '${artifact}'"
echo " Please check the following and either correct the build or update" echo " Please check the following and either correct the build or update"

View File

@ -1,6 +1,6 @@
<project xmlns="https://maven.apache.org/POM/4.0.0" <project xmlns="https://maven.apache.org/POM/4.0.0"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- <!--
/** /**
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
@ -20,161 +20,159 @@
* limitations under the License. * limitations under the License.
*/ */
--> -->
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<artifactId>hbase-shaded</artifactId> <artifactId>hbase-shaded</artifactId>
<groupId>org.apache.hbase</groupId> <groupId>org.apache.hbase</groupId>
<version>2.6.0-SNAPSHOT</version> <version>2.6.0-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>
<artifactId>hbase-shaded-client-byo-hadoop</artifactId> <artifactId>hbase-shaded-client-byo-hadoop</artifactId>
<name>Apache HBase - Shaded - Client</name> <name>Apache HBase - Shaded - Client</name>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId> <artifactId>maven-site-plugin</artifactId>
<configuration> <configuration>
<skip>true</skip> <skip>true</skip>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<!--Make it so assembly:single does nothing in here--> <!--Make it so assembly:single does nothing in here-->
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-assembly-plugin</artifactId>
<configuration> <configuration>
<skipAssembly>true</skipAssembly> <skipAssembly>true</skipAssembly>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hbase</groupId>
<artifactId>hadoop-auth</artifactId> <artifactId>hbase-client</artifactId>
<scope>provided</scope> </dependency>
</dependency> </dependencies>
</dependencies>
<profiles> <profiles>
<!-- These hadoop profiles should be derived from those in the hbase-client <!-- These hadoop profiles should be derived from those in the hbase-client
module. Essentially, you must list the same hadoop-* dependencies module. Essentially, you must list the same hadoop-* dependencies
so provided dependencies will not be transitively included. so provided dependencies will not be transitively included.
--> -->
<profile> <profile>
<id>hadoop-2.0</id> <id>hadoop-2.0</id>
<activation> <activation>
<property> <property>
<!--Below formatting for dev-support/generate-hadoopX-poms.sh--> <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
<!--h2--> <!--h2--><name>!hadoop.profile</name>
<name>!hadoop.profile</name> </property>
</property> </activation>
</activation> <dependencies>
<dependencies> <dependency>
<dependency> <groupId>org.apache.hadoop</groupId>
<groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId>
<artifactId>hadoop-auth</artifactId> <scope>provided</scope>
<scope>provided</scope> </dependency>
</dependency> <dependency>
<dependency> <groupId>org.apache.hadoop</groupId>
<groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId>
<artifactId>hadoop-common</artifactId> <scope>provided</scope>
<scope>provided</scope> </dependency>
</dependency> <dependency>
<dependency> <groupId>org.codehaus.jackson</groupId>
<groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs</artifactId>
<artifactId>jackson-jaxrs</artifactId> <version>1.9.13</version>
<version>1.9.13</version> <scope>provided</scope>
<scope>provided</scope> <exclusions>
<exclusions> <exclusion>
<exclusion> <groupId>org.codehaus.jackson</groupId>
<groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId>
<artifactId>jackson-mapper-asl</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>org.codehaus.jackson</groupId>
<groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId>
<artifactId>jackson-core-asl</artifactId> </exclusion>
</exclusion> </exclusions>
</exclusions> </dependency>
</dependency> <dependency>
<dependency> <groupId>org.codehaus.jackson</groupId>
<groupId>org.codehaus.jackson</groupId> <artifactId>jackson-xc</artifactId>
<artifactId>jackson-xc</artifactId> <version>1.9.13</version>
<version>1.9.13</version> <scope>provided</scope>
<scope>provided</scope> <exclusions>
<exclusions> <exclusion>
<exclusion> <groupId>org.codehaus.jackson</groupId>
<groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId>
<artifactId>jackson-mapper-asl</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>org.codehaus.jackson</groupId>
<groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId>
<artifactId>jackson-core-asl</artifactId> </exclusion>
</exclusion> </exclusions>
</exclusions> </dependency>
</dependency> </dependencies>
</dependencies> </profile>
</profile>
<!-- <!--
profile for building against Hadoop 3.0.x. Activate using: profile for building against Hadoop 3.0.x. Activate using:
mvn -Dhadoop.profile=3.0 mvn -Dhadoop.profile=3.0
--> -->
<profile> <profile>
<id>hadoop-3.0</id> <id>hadoop-3.0</id>
<activation> <activation>
<property> <property>
<name>hadoop.profile</name> <name>hadoop.profile</name>
<value>3.0</value> <value>3.0</value>
</property> </property>
</activation> </activation>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId> <artifactId>hadoop-auth</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId> <artifactId>hadoop-common</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId> <artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version> <version>1.9.13</version>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId> <artifactId>jackson-mapper-asl</artifactId>
</exclusion> </exclusion>
<exclusion> <exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId> <artifactId>jackson-core-asl</artifactId>
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId> <artifactId>jackson-xc</artifactId>
<version>1.9.13</version> <version>1.9.13</version>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId> <artifactId>jackson-mapper-asl</artifactId>
</exclusion> </exclusion>
<exclusion> <exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId> <artifactId>jackson-core-asl</artifactId>
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
</dependencies> </dependencies>
</profile> </profile>
</profiles> </profiles>
</project> </project>

View File

@ -1,6 +1,6 @@
<project xmlns="https://maven.apache.org/POM/4.0.0" <project xmlns="https://maven.apache.org/POM/4.0.0"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- <!--
/** /**
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
@ -20,288 +20,378 @@
* limitations under the License. * limitations under the License.
*/ */
--> -->
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<artifactId>hbase-shaded</artifactId> <artifactId>hbase-shaded</artifactId>
<groupId>org.apache.hbase</groupId> <groupId>org.apache.hbase</groupId>
<version>2.6.0-SNAPSHOT</version> <version>2.6.0-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>
<artifactId>hbase-shaded-mapreduce</artifactId> <artifactId>hbase-shaded-mapreduce</artifactId>
<name>Apache HBase - Shaded - MapReduce</name> <name>Apache HBase - Shaded - MapReduce</name>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId> <artifactId>maven-site-plugin</artifactId>
<configuration> <configuration>
<skip>true</skip> <skip>true</skip>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<!--Make it so assembly:single does nothing in here--> <!--Make it so assembly:single does nothing in here-->
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-assembly-plugin</artifactId>
<configuration> <configuration>
<skipAssembly>true</skipAssembly> <skipAssembly>true</skipAssembly>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<configuration> <configuration>
<archive> <archive>
<manifest> <manifest>
<!--Include the Driver class as the 'main'. <!--Include the Driver class as the 'main'.
Executing the jar will then show a list of the basic MR jobs. Executing the jar will then show a list of the basic MR jobs.
--> -->
<mainClass>org/apache/hadoop/hbase/mapreduce/Driver</mainClass> <mainClass>org/apache/hadoop/hbase/mapreduce/Driver</mainClass>
</manifest> </manifest>
</archive> </archive>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<dependencies> <dependencies>
<!-- <!--
We want to ensure needed hadoop bits are at provided scope for our shaded We want to ensure needed hadoop bits are at provided scope for our shaded
artifact, so we list them below in hadoop specific profiles. artifact, so we list them below in hadoop specific profiles.
--> -->
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hbase</groupId>
<artifactId>hadoop-common</artifactId> <artifactId>hbase-mapreduce</artifactId>
<scope>provided</scope> <exclusions>
</dependency> <!-- Jaxb-api is a part of Java SE now -->
</dependencies> <exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
<!-- Jersey not used by our MR support -->
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-guice</artifactId>
</exclusion>
<!-- Jetty not used by our MR support -->
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util-ajax</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
</exclusion>
<!-- We excluded the server-side generated classes for JSP, so exclude
their runtime support libraries too
-->
<exclusion>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<profiles> <profiles>
<!-- These hadoop profiles should be derived from those in the hbase-mapreduce <!-- These hadoop profiles should be derived from those in the hbase-mapreduce
module. Essentially, you must list the same hadoop-* dependencies module. Essentially, you must list the same hadoop-* dependencies
since provided dependencies are not transitively included. since provided dependencies are not transitively included.
--> -->
<!-- profile against Hadoop 2.x: This is the default. --> <!-- profile against Hadoop 2.x: This is the default. -->
<profile> <profile>
<id>hadoop-2.0</id> <id>hadoop-2.0</id>
<activation> <activation>
<property> <property>
<!--Below formatting for dev-support/generate-hadoopX-poms.sh--> <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
<!--h2--> <!--h2--><name>!hadoop.profile</name>
<name>!hadoop.profile</name> </property>
</property> </activation>
</activation> <dependencies>
<dependencies> <dependency>
<dependency> <groupId>org.apache.hadoop</groupId>
<groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId>
<artifactId>hadoop-common</artifactId> <scope>provided</scope>
<scope>provided</scope> <exclusions>
<exclusions> <exclusion>
<exclusion> <groupId>net.java.dev.jets3t</groupId>
<groupId>net.java.dev.jets3t</groupId> <artifactId>jets3t</artifactId>
<artifactId>jets3t</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>javax.servlet.jsp</groupId>
<groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId>
<artifactId>jsp-api</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>org.mortbay.jetty</groupId>
<groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId>
<artifactId>jetty</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>com.sun.jersey</groupId>
<groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId>
<artifactId>jersey-server</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>com.sun.jersey</groupId>
<groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId>
<artifactId>jersey-core</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>com.sun.jersey</groupId>
<groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId>
<artifactId>jersey-json</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>javax.servlet</groupId>
<groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId>
<artifactId>servlet-api</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>tomcat</groupId>
<groupId>tomcat</groupId> <artifactId>jasper-compiler</artifactId>
<artifactId>jasper-compiler</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>tomcat</groupId>
<groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId>
<artifactId>jasper-runtime</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>com.google.code.findbugs</groupId>
<groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId>
<artifactId>jsr305</artifactId> </exclusion>
</exclusion> </exclusions>
</exclusions> </dependency>
</dependency> <dependency>
<dependency> <groupId>org.apache.hadoop</groupId>
<groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId>
<artifactId>hadoop-hdfs</artifactId> <scope>provided</scope>
<scope>provided</scope> <exclusions>
<exclusions> <exclusion>
<exclusion> <groupId>javax.servlet.jsp</groupId>
<groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId>
<artifactId>jsp-api</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>javax.servlet</groupId>
<groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId>
<artifactId>servlet-api</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>io.netty</groupId>
<groupId>io.netty</groupId> <artifactId>netty</artifactId>
<artifactId>netty</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>stax</groupId>
<groupId>stax</groupId> <artifactId>stax-api</artifactId>
<artifactId>stax-api</artifactId> </exclusion>
</exclusion> <exclusion>
<exclusion> <groupId>xerces</groupId>
<groupId>xerces</groupId> <artifactId>xercesImpl</artifactId>
<artifactId>xercesImpl</artifactId> </exclusion>
</exclusion> </exclusions>
</exclusions> <version>${hadoop-two.version}</version>
<version>${hadoop-two.version}</version> </dependency>
</dependency> <dependency>
<dependency> <groupId>org.apache.hadoop</groupId>
<groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId>
<artifactId>hadoop-mapreduce-client-core</artifactId> <scope>provided</scope>
<scope>provided</scope> <exclusions>
<exclusions> <exclusion>
<exclusion> <groupId>com.google.guava</groupId>
<groupId>com.google.guava</groupId> <artifactId>guava</artifactId>
<artifactId>guava</artifactId> </exclusion>
</exclusion> </exclusions>
</exclusions> </dependency>
</dependency> <dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId> <artifactId>jackson-jaxrs</artifactId>
</exclusion> <version>1.9.13</version>
<exclusion> <scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId> <artifactId>jackson-xc</artifactId>
</exclusion> <version>1.9.13</version>
</exclusions> <scope>provided</scope>
</dependency> <exclusions>
<dependency> <exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId> <artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version> </exclusion>
<scope>provided</scope> <exclusion>
<exclusions> <groupId>org.codehaus.jackson</groupId>
<exclusion> <artifactId>jackson-core-asl</artifactId>
<groupId>org.codehaus.jackson</groupId> </exclusion>
<artifactId>jackson-mapper-asl</artifactId> </exclusions>
</exclusion> </dependency>
<exclusion> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>jackson-core-asl</artifactId> <artifactId>hadoop-auth</artifactId>
</exclusion> <scope>provided</scope>
</exclusions> </dependency>
</dependency> </dependencies>
<dependency> </profile>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<!-- <!--
profile for building against Hadoop 3.0.x. Activate using: profile for building against Hadoop 3.0.x. Activate using:
mvn -Dhadoop.profile=3.0 mvn -Dhadoop.profile=3.0
--> -->
<profile> <profile>
<id>hadoop-3.0</id> <id>hadoop-3.0</id>
<activation> <activation>
<property> <property>
<name>hadoop.profile</name> <name>hadoop.profile</name>
<value>3.0</value> <value>3.0</value>
</property> </property>
</activation> </activation>
<properties> <properties>
<hadoop.version>${hadoop-three.version}</hadoop.version> <hadoop.version>${hadoop-three.version}</hadoop.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId> <artifactId>hadoop-common</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId> <artifactId>hadoop-hdfs</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId> <artifactId>hadoop-auth</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId> <artifactId>hadoop-mapreduce-client-core</artifactId>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
</exclusion> </exclusion>
<exclusion> <exclusion>
<groupId>javax.xml.bind</groupId> <groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId> <artifactId>jaxb-api</artifactId>
</exclusion> </exclusion>
<exclusion> <exclusion>
<groupId>javax.ws.rs</groupId> <groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId> <artifactId>jsr311-api</artifactId>
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId> <artifactId>jackson-jaxrs</artifactId>
</exclusion> <version>1.9.13</version>
<exclusion> <scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId> <artifactId>jackson-xc</artifactId>
</exclusion> <version>1.9.13</version>
</exclusions> <scope>provided</scope>
</dependency> <exclusions>
<dependency> <exclusion>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId> <artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version> </exclusion>
<scope>provided</scope> <exclusion>
<exclusions> <groupId>org.codehaus.jackson</groupId>
<exclusion> <artifactId>jackson-core-asl</artifactId>
<groupId>org.codehaus.jackson</groupId> </exclusion>
<artifactId>jackson-mapper-asl</artifactId> </exclusions>
</exclusion> </dependency>
<exclusion> </dependencies>
<groupId>org.codehaus.jackson</groupId> </profile>
<artifactId>jackson-core-asl</artifactId> </profiles>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
</profiles>
</project> </project>

View File

@ -114,6 +114,10 @@ declare -i bad_artifacts=0
declare -a bad_contents declare -a bad_contents
for artifact in "${artifact_list[@]}"; do for artifact in "${artifact_list[@]}"; do
bad_contents=($(jar tf "${artifact}" | grep -v -E "${allowed_expr}" || true)) bad_contents=($(jar tf "${artifact}" | grep -v -E "${allowed_expr}" || true))
class_count=$(jar tf "${artifact}" | grep -c -E '\.class$' || true)
if [ ${#bad_contents[@]} -eq 0 ] && [ "${class_count}" -lt 1 ]; then
bad_contents=("The artifact contains no java class files.")
fi
if [ ${#bad_contents[@]} -gt 0 ]; then if [ ${#bad_contents[@]} -gt 0 ]; then
echo "[ERROR] Found artifact with unexpected contents: '${artifact}'" echo "[ERROR] Found artifact with unexpected contents: '${artifact}'"
echo " Please check the following and either correct the build or update" echo " Please check the following and either correct the build or update"