This is an automated email from the ASF dual-hosted git repository.
stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 8bed517e3ad HBASE-29016 Refactor assembly creation to use only
DependencySets and move cached classpath creation to a new module
8bed517e3ad is described below
commit 8bed517e3ade91cc39021f0161df994ccd5e6075
Author: Istvan Toth <[email protected]>
AuthorDate: Wed Dec 4 15:22:17 2024 +0100
HBASE-29016 Refactor assembly creation to use only DependencySets and move
cached classpath creation to a new module
---
hbase-assembly/pom.xml | 125 ++++++-------------
hbase-assembly/src/main/assembly/client.xml | 111 ++++++++---------
.../src/main/assembly/hadoop-three-compat.xml | 136 +++++++--------------
.../pom.xml | 115 +----------------
pom.xml | 5 +
5 files changed, 137 insertions(+), 355 deletions(-)
diff --git a/hbase-assembly/pom.xml b/hbase-assembly/pom.xml
index 90be45e9cbf..0e6c2181b45 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-assembly/pom.xml
@@ -47,24 +47,6 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-shaded-mapreduce</artifactId>
</dependency>
- <!-- Intra-project dependencies -->
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
- <dependency>
- <groupId>org.apache.hbase</groupId>
- <artifactId>hbase-it</artifactId>
- <type>test-jar</type>
- </dependency>
- <!-- Hamcrest is required by hbase-it (via junit), but as long as we're
grabbing the hbase-it test-jar,
- maven dependency resolution won't pick it up for us. -->
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-core</artifactId>
- <!-- Overriding the scope in depMgmt -->
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-openssl</artifactId>
@@ -75,27 +57,11 @@
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
- <artifactId>hbase-mapreduce</artifactId>
+ <artifactId>hbase-endpoint</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-mapreduce</artifactId>
- <type>test-jar</type>
- </dependency>
- <!-- To dump tools in hbase-procedure into cached_classpath.txt. -->
- <dependency>
- <groupId>org.apache.hbase</groupId>
- <artifactId>hbase-procedure</artifactId>
- </dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
- <dependency>
- <groupId>org.apache.hbase</groupId>
- <artifactId>hbase-procedure</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
@@ -123,12 +89,6 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-external-blockcache</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
- <dependency>
- <groupId>org.apache.hbase</groupId>
- <artifactId>hbase-testing-util</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-metrics-api</artifactId>
@@ -154,6 +114,10 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-asyncfs</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-backup</artifactId>
@@ -206,6 +170,8 @@
<groupId>jline</groupId>
<artifactId>jline</artifactId>
</dependency>
+ <!-- FIXME this is only kept to simplify reviewing the assembly refactor.
+ See HBASE-29010 -->
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-ri</artifactId>
@@ -245,20 +211,36 @@
<groupId>io.opentelemetry.javaagent</groupId>
<artifactId>opentelemetry-javaagent</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
+ <!-- This is an optional dependency of hbase-external-blockcache.
+ The assembly traditionally includes it, so we add it as an explicit
dependency -->
+ <dependency>
+ <groupId>net.spy</groupId>
+ <artifactId>spymemcached</artifactId>
+ </dependency>
+ <!-- The tomcat JSP Compiler dependencies are not needed for runtime -->
+ <dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-juli</artifactId>
+ <version>${tomcat.version.for.exclusion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-api</artifactId>
+ <version>${tomcat.version.for.exclusion}</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-util-scan</artifactId>
+ <version>${tomcat.version.for.exclusion}</version>
+ <scope>provided</scope>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <!-- Making it compile here so that it can be downloaded during
packaging. -->
- <!-- All other modules scope it as test or inherit test scope from
parent pom. -->
- <scope>compile</scope>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-util</artifactId>
+ <version>${tomcat.version.for.exclusion}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
<build>
@@ -313,45 +295,6 @@
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
- <execution>
- <!-- generates the file that will be used by the bin/hbase script
in the dev env -->
- <id>create-hbase-generated-classpath</id>
- <goals>
- <goal>build-classpath</goal>
- </goals>
- <phase>test</phase>
- <configuration>
-
<outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile>
-
<excludeArtifactIds>jline,jruby-complete,hbase-shaded-client,hbase-shaded-client-byo-hadoop,hbase-shaded-mapreduce</excludeArtifactIds>
- </configuration>
- </execution>
-
- <execution>
- <!-- generates the file that will be used by the bin/hbase zkcli
script in the dev env -->
- <id>create-hbase-generated-classpath-jline</id>
- <goals>
- <goal>build-classpath</goal>
- </goals>
- <phase>test</phase>
- <configuration>
-
<outputFile>${project.parent.basedir}/target/cached_classpath_jline.txt</outputFile>
- <includeArtifactIds>jline</includeArtifactIds>
- </configuration>
- </execution>
-
- <execution>
- <!-- generates the file that will be used by the bin/hbase shell
script in the dev env -->
- <id>create-hbase-generated-classpath-jruby</id>
- <goals>
- <goal>build-classpath</goal>
- </goals>
- <phase>test</phase>
- <configuration>
-
<outputFile>${project.parent.basedir}/target/cached_classpath_jruby.txt</outputFile>
- <includeArtifactIds>jruby-complete</includeArtifactIds>
- </configuration>
- </execution>
-
<!--
Build an aggregation of our templated NOTICE file and the NOTICE
files in our dependencies.
If MASSEMBLY-382 is fixed we could do this in the assembly
diff --git a/hbase-assembly/src/main/assembly/client.xml
b/hbase-assembly/src/main/assembly/client.xml
index 9f95e139332..f8708b363e6 100644
--- a/hbase-assembly/src/main/assembly/client.xml
+++ b/hbase-assembly/src/main/assembly/client.xml
@@ -31,55 +31,10 @@
<baseDirectory>hbase-${project.version}-client</baseDirectory>
<componentDescriptors>
<componentDescriptor>src/main/assembly/client-components.xml</componentDescriptor>
+ <!-- Not that everything below is an exact copy of hadoop-three-compat.xml
+ Unless differences are introduced on purpose, this should be kept in sync
with
+ hadoop-three-compat.xml -->
</componentDescriptors>
- <moduleSets>
- <!-- include regular jars so the shell can use them -->
- <moduleSet>
- <useAllReactorProjects>true</useAllReactorProjects>
- <includes>
- <include>org.apache.hbase:hbase-shell</include>
- </includes>
- <binaries>
- <unpack>false</unpack>
- <outputDirectory>lib</outputDirectory>
- <dependencySets>
- <dependencySet>
- <excludes>
- <exclude>org.apache.hadoop:*:test-jar</exclude>
- <exclude>org.apache.hbase:*:test-jar</exclude>
- <!-- Exclude J2EE libraries that get pulled in when building on
JDK11 -->
- <exclude>com.sun.xml.ws:jaxws-ri</exclude>
- <!-- Exclude libraries that we put in their own dirs under lib/ -->
- <exclude>org.jruby:jruby-complete</exclude>
- <exclude>com.sun.jersey:*</exclude>
- <exclude>com.sun.jersey.contribs:*</exclude>
- <exclude>jline:jline</exclude>
- <exclude>junit:junit</exclude>
-
<exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
- <exclude>commons-logging:commons-logging</exclude>
- <exclude>log4j:log4j</exclude>
- <exclude>org.apache.hbase:hbase-shaded-client</exclude>
-
<exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
- <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
- <exclude>org.apache.htrace:htrace-core4</exclude>
- <exclude>org.apache.htrace:htrace-core</exclude>
- <exclude>org.apache.yetus:audience-annotations</exclude>
- <exclude>org.slf4j:*</exclude>
- <exclude>org.apache.logging.log4j:*</exclude>
- <exclude>io.opentelemetry.javaagent:*</exclude>
- <exclude>org.hamcrest:hamcrest-core</exclude>
- <exclude>org.mockito:mockito-core</exclude>
- <!-- Exclude transitive dependencies of tomcat-jasper, not
needed at runtime -->
- <exclude>org.apache.tomcat:tomcat-juli</exclude>
- <exclude>org.apache.tomcat:tomcat-api</exclude>
- <exclude>org.apache.tomcat:tomcat-util-scan</exclude>
- <exclude>org.apache.tomcat:tomcat-util</exclude>
- </excludes>
- </dependencySet>
- </dependencySets>
- </binaries>
- </moduleSet>
- </moduleSets>
<!-- Include the generated LICENSE and NOTICE files -->
<files>
<file>
@@ -104,15 +59,40 @@
<dependencySets>
<dependencySet>
- <outputDirectory>lib/shaded-clients</outputDirectory>
- <includes>
- <include>org.apache.hbase:hbase-shaded-client</include>
- <include>org.apache.hbase:hbase-shaded-mapreduce</include>
- <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
- </includes>
+ <outputDirectory>lib</outputDirectory>
+ <useTransitiveDependencies>true</useTransitiveDependencies>
+ <!-- Exclude artifacts added in the sub-directories to avoid duplication
-->
+ <excludes>
+ <!-- Exclude the shaded jars that go in the lib/shaded-clients
directory -->
+ <exclude>org.apache.hbase:hbase-shaded-client</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
+ <!-- Exclude the Ruby jar that goes in the lib/ruby directory -->
+ <exclude>org.jruby:jruby-complete</exclude>
+ <!-- Exclude jars that go into the lib/client-facing-thirdparty
directory -->
+ <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
+ <exclude>commons-logging:commons-logging</exclude>
+ <exclude>log4j:log4j</exclude>
+ <exclude>org.apache.htrace:htrace-core4</exclude>
+ <exclude>org.apache.htrace:htrace-core</exclude>
+ <exclude>org.apache.yetus:audience-annotations</exclude>
+ <exclude>org.slf4j:*</exclude>
+ <exclude>org.apache.logging.log4j:*</exclude>
+ <!-- TODO shouldn't we also exclude duplicate io.opentelemetry.* jars
which are added to client-facing-thirdparty ? -->
+ <!-- Exclude the opentelemetry agent that goes in the lib/trace
directory -->
+ <exclude>io.opentelemetry.javaagent:*</exclude>
+ <!-- Exclude jline2 which goes into lib/zk-client. jline3 is a
different artifact-->
+ <exclude>jline:jline</exclude>
+ <!-- These two exclusions are added here to preserve previous
behaviour, and are not included in sub-directories -->
+ <!-- TODO investigate using the provided mechanism for these -->
+ <exclude>com.sun.jersey:*</exclude>
+ <exclude>com.sun.jersey.contribs:*</exclude>
+ <!-- FIXME remove when jaxws-ri is removed from assembly -->
+ <exclude>com.sun.xml.ws:jaxws-ri:pom</exclude>
+ </excludes>
</dependencySet>
- <!-- Add jruby-complete to hbase_home/lib/ruby.
- Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you
would like to update outputDirectory below -->
+ <!-- Add jruby-complete to hbase_home/lib/ruby.
+ Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you
would like to update outputDirectory below -->
<dependencySet>
<outputDirectory>lib/ruby</outputDirectory>
<includes>
@@ -120,8 +100,6 @@
</includes>
</dependencySet>
<!-- Include third party dependencies the shaded clients expose in the lib
directory
- N.B. this will conflict with the omnibus tarball but these should be
precisely
- the same artifacts so blind overwrite of either should be fine.
-->
<dependencySet>
<outputDirectory>lib/client-facing-thirdparty</outputDirectory>
@@ -152,6 +130,7 @@
tarball in a different build.
-->
<includes>
+ <!-- TODO Review and remove entries that are not present in any
supported HBase and Hadoop version -->
<include>com.github.stephenc.findbugs:findbugs-annotations</include>
<include>commons-logging:commons-logging</include>
<include>log4j:log4j</include>
@@ -163,6 +142,21 @@
<include>io.opentelemetry:*</include>
</includes>
</dependencySet>
+ <dependencySet>
+ <outputDirectory>lib/shaded-clients</outputDirectory>
+ <includes>
+ <include>org.apache.hbase:hbase-shaded-client</include>
+ <include>org.apache.hbase:hbase-shaded-mapreduce</include>
+ <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>lib/zkcli</outputDirectory>
+ <includes>
+ <!-- This is jline2 -->
+ <include>jline:jline</include>
+ </includes>
+ </dependencySet>
<dependencySet>
<outputDirectory>lib/trace</outputDirectory>
<includes>
@@ -170,5 +164,4 @@
</includes>
</dependencySet>
</dependencySets>
-
</assembly>
diff --git a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
index f5da20b2131..3fc5e0c7bd0 100644
--- a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
+++ b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
@@ -28,98 +28,6 @@
<componentDescriptors>
<componentDescriptor>src/main/assembly/components.xml</componentDescriptor>
</componentDescriptors>
- <moduleSets>
- <moduleSet>
- <useAllReactorProjects>true</useAllReactorProjects>
- <includes>
- <!-- Keep this list sorted by name -->
- <include>org.apache.hbase:hbase-asyncfs</include>
- <include>org.apache.hbase:hbase-backup</include>
- <include>org.apache.hbase:hbase-balancer</include>
- <include>org.apache.hbase:hbase-client</include>
- <include>org.apache.hbase:hbase-common</include>
- <include>org.apache.hbase:hbase-endpoint</include>
- <include>org.apache.hbase:hbase-external-blockcache</include>
- <include>org.apache.hbase:hbase-hadoop-compat</include>
- <include>org.apache.hbase:hbase-http</include>
- <include>org.apache.hbase:hbase-logging</include>
- <include>org.apache.hbase:hbase-mapreduce</include>
- <include>org.apache.hbase:hbase-diagnostics</include>
- <include>org.apache.hbase:hbase-metrics</include>
- <include>org.apache.hbase:hbase-metrics-api</include>
- <include>org.apache.hbase:hbase-procedure</include>
- <include>org.apache.hbase:hbase-protocol-shaded</include>
- <include>org.apache.hbase:hbase-replication</include>
- <include>org.apache.hbase:hbase-rest</include>
- <include>org.apache.hbase:hbase-server</include>
- <include>org.apache.hbase:hbase-shell</include>
- <include>org.apache.hbase:hbase-thrift</include>
- <include>org.apache.hbase:hbase-zookeeper</include>
- </includes>
- <!-- Binaries for the dependencies also go in the hbase-jars directory
-->
- <binaries>
- <outputDirectory>lib</outputDirectory>
- <unpack>false</unpack>
- <dependencySets>
- <dependencySet>
- <excludes>
- <exclude>org.apache.hadoop:*:test-jar</exclude>
- <exclude>org.apache.hbase:*:test-jar</exclude>
- <!-- Exclude pom file -->
- <exclude>com.sun.xml.ws:jaxws-ri:pom</exclude>
- <!-- Exclude libraries that we put in their own dirs under lib/
-->
- <exclude>org.jruby:jruby-complete</exclude>
- <exclude>com.sun.jersey:*</exclude>
- <exclude>com.sun.jersey.contribs:*</exclude>
- <exclude>jline:jline</exclude>
- <exclude>org.apache.hbase:hbase-shaded-client</exclude>
-
<exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
- <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
-
<exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
- <exclude>commons-logging:commons-logging</exclude>
- <exclude>log4j:log4j</exclude>
- <exclude>org.apache.htrace:htrace-core4</exclude>
- <exclude>org.apache.htrace:htrace-core</exclude>
- <exclude>org.apache.yetus:audience-annotations</exclude>
- <exclude>org.slf4j:*</exclude>
- <exclude>org.apache.logging.log4j:*</exclude>
- <exclude>io.opentelemetry.javaagent:*</exclude>
- <exclude>junit:junit</exclude>
- <exclude>org.hamcrest:hamcrest-core</exclude>
- <exclude>org.mockito:mockito-core</exclude>
- <!-- Exclude transitive dependencies of tomcat-jasper, not
needed at runtime -->
- <exclude>org.apache.tomcat:tomcat-juli</exclude>
- <exclude>org.apache.tomcat:tomcat-api</exclude>
- <exclude>org.apache.tomcat:tomcat-util-scan</exclude>
- <exclude>org.apache.tomcat:tomcat-util</exclude>
- </excludes>
- </dependencySet>
- </dependencySets>
- </binaries>
- </moduleSet>
- <!-- Include shaded clients in their own directory -->
- <moduleSet>
- <useAllReactorProjects>true</useAllReactorProjects>
- <includes>
- <include>org.apache.hbase:hbase-shaded-client</include>
- <include>org.apache.hbase:hbase-shaded-mapreduce</include>
- <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
- </includes>
- <binaries>
- <outputDirectory>lib/shaded-clients</outputDirectory>
- <unpack>false</unpack>
- <dependencySets>
- <dependencySet>
- <includes>
- <include>org.apache.hbase:hbase-shaded-client</include>
- <include>org.apache.hbase:hbase-shaded-mapreduce</include>
-
<include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
- </includes>
- </dependencySet>
- </dependencySets>
- </binaries>
- </moduleSet>
- </moduleSets>
<!-- Include the generated LICENSE and NOTICE files -->
<files>
<file>
@@ -143,6 +51,39 @@
</files>
<dependencySets>
+ <dependencySet>
+ <outputDirectory>lib</outputDirectory>
+ <useTransitiveDependencies>true</useTransitiveDependencies>
+ <!-- Exclude artifacts added in the sub-directories to avoid duplication
-->
+ <excludes>
+ <!-- Exclude the shaded jars that go in the lib/shaded-clients
directory -->
+ <exclude>org.apache.hbase:hbase-shaded-client</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
+ <!-- Exclude the Ruby jar that goes in the lib/ruby directory -->
+ <exclude>org.jruby:jruby-complete</exclude>
+ <!-- Exclude jars that go into the lib/client-facing-thirdparty
directory -->
+ <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
+ <exclude>commons-logging:commons-logging</exclude>
+ <exclude>log4j:log4j</exclude>
+ <exclude>org.apache.htrace:htrace-core4</exclude>
+ <exclude>org.apache.htrace:htrace-core</exclude>
+ <exclude>org.apache.yetus:audience-annotations</exclude>
+ <exclude>org.slf4j:*</exclude>
+ <exclude>org.apache.logging.log4j:*</exclude>
+ <exclude>io.opentelemetry:*</exclude>
+ <!-- Exclude the opentelemetry agent that goes in the lib/trace
directory -->
+ <exclude>io.opentelemetry.javaagent:*</exclude>
+ <!-- Exclude jline2 which goes into lib/zk-client. jline3 is a
different artifact-->
+ <exclude>jline:jline</exclude>
+ <!-- These two exclusions are added here to preserve previous
behaviour, and are not included in sub-directories -->
+ <!-- TODO investigate using the provided mechanism for these -->
+ <exclude>com.sun.jersey:*</exclude>
+ <exclude>com.sun.jersey.contribs:*</exclude>
+ <!-- FIXME remove when jaxws-ri is removed from assembly -->
+ <exclude>com.sun.xml.ws:jaxws-ri:pom</exclude>
+ </excludes>
+ </dependencySet>
<!-- Add jruby-complete to hbase_home/lib/ruby.
Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you
would like to update outputDirectory below -->
<dependencySet>
@@ -182,6 +123,7 @@
tarball in a different build.
-->
<includes>
+ <!-- TODO Review and remove entries that are not present in any
supported HBase and Hadoop version -->
<include>com.github.stephenc.findbugs:findbugs-annotations</include>
<include>commons-logging:commons-logging</include>
<include>log4j:log4j</include>
@@ -193,9 +135,18 @@
<include>io.opentelemetry:*</include>
</includes>
</dependencySet>
+ <dependencySet>
+ <outputDirectory>lib/shaded-clients</outputDirectory>
+ <includes>
+ <include>org.apache.hbase:hbase-shaded-client</include>
+ <include>org.apache.hbase:hbase-shaded-mapreduce</include>
+ <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
+ </includes>
+ </dependencySet>
<dependencySet>
<outputDirectory>lib/zkcli</outputDirectory>
<includes>
+ <!-- This is jline2 -->
<include>jline:jline</include>
</includes>
</dependencySet>
@@ -206,5 +157,4 @@
</includes>
</dependencySet>
</dependencySets>
-
</assembly>
diff --git a/hbase-assembly/pom.xml b/hbase-dev-generate-classpath/pom.xml
similarity index 65%
copy from hbase-assembly/pom.xml
copy to hbase-dev-generate-classpath/pom.xml
index 90be45e9cbf..b7fed7a211d 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-dev-generate-classpath/pom.xml
@@ -26,10 +26,10 @@
<version>${revision}</version>
<relativePath>../hbase-build-configuration</relativePath>
</parent>
- <artifactId>hbase-assembly</artifactId>
+ <artifactId>hbase-generate-dev-classpath</artifactId>
<packaging>pom</packaging>
- <name>Apache HBase - Assembly</name>
- <description>Module that does project assembly and that is all that it
does.</description>
+ <name>Apache HBase - Generate Dev Classpath</name>
+ <description>Module that generates a local classpath for running HBase from
the source directory.</description>
<properties>
<license.bundles.dependencies>true</license.bundles.dependencies>
</properties>
@@ -47,9 +47,6 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-shaded-mapreduce</artifactId>
</dependency>
- <!-- Intra-project dependencies -->
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-it</artifactId>
@@ -57,8 +54,6 @@
</dependency>
<!-- Hamcrest is required by hbase-it (via junit), but as long as we're
grabbing the hbase-it test-jar,
maven dependency resolution won't pick it up for us. -->
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
@@ -77,25 +72,19 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-mapreduce</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-mapreduce</artifactId>
<type>test-jar</type>
</dependency>
- <!-- To dump tools in hbase-procedure into cached_classpath.txt. -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-procedure</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-procedure</artifactId>
<type>test-jar</type>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
@@ -123,8 +112,6 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-external-blockcache</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-testing-util</artifactId>
@@ -245,14 +232,10 @@
<groupId>io.opentelemetry.javaagent</groupId>
<artifactId>opentelemetry-javaagent</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
- <!-- We don't really add this to assembly tarball, we retain it here just
to dump it into
- cached_classpath.txt ! See HBASE-28433 for more info. -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
@@ -263,53 +246,6 @@
</dependencies>
<build>
<plugins>
- <!-- licensing info from our dependencies -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-remote-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>aggregate-licenses</id>
- <goals>
- <goal>process</goal>
- </goals>
- <configuration>
- <properties>
- <copyright-end-year>${build.year}</copyright-end-year>
-
<debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
-
<bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
- <bundled-jquery>${license.bundles.jquery}</bundled-jquery>
- <bundled-vega>${license.bundles.vega}</bundled-vega>
- <bundled-logo>${license.bundles.logo}</bundled-logo>
-
<bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
- </properties>
- <resourceBundles>
-
<resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
- </resourceBundles>
- <supplementalModelArtifacts>
-
<supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
- </supplementalModelArtifacts>
- <supplementalModels>
- <supplementalModel>supplemental-models.xml</supplementalModel>
- </supplementalModels>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <!--Else will use hbase-assembly as final name.-->
- <finalName>hbase-${project.version}</finalName>
- <skipAssembly>false</skipAssembly>
- <appendAssemblyId>true</appendAssemblyId>
- <tarLongFileMode>posix</tarLongFileMode>
- <descriptors>
- <descriptor>${assembly.file}</descriptor>
- <descriptor>src/main/assembly/client.xml</descriptor>
- </descriptors>
- </configuration>
- </plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
@@ -351,53 +287,8 @@
<includeArtifactIds>jruby-complete</includeArtifactIds>
</configuration>
</execution>
-
- <!--
- Build an aggregation of our templated NOTICE file and the NOTICE
files in our dependencies.
- If MASSEMBLY-382 is fixed we could do this in the assembly
- Currently relies on env, bash, find, and cat.
- -->
- <execution>
- <!-- put all of the NOTICE files out of our dependencies -->
- <id>unpack-dependency-notices</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>prepare-package</phase>
- <configuration>
- <excludeTypes>pom</excludeTypes>
- <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact>
- <includes>**\/NOTICE,**\/NOTICE.txt</includes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>${exec.maven.version}</version>
- <executions>
- <execution>
- <id>concat-NOTICE-files</id>
- <goals>
- <goal>exec</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <executable>env</executable>
- <arguments>
- <argument>bash</argument>
- <argument>-c</argument>
- <argument>cat maven-shared-archive-resources/META-INF/NOTICE \
- `find ${project.build.directory}/dependency -iname NOTICE
-or -iname NOTICE.txt`</argument>
- </arguments>
-
<outputFile>${project.build.directory}/NOTICE.aggregate</outputFile>
- <workingDirectory>${project.build.directory}</workingDirectory>
- </configuration>
- </execution>
</executions>
</plugin>
- <!-- /end building aggregation of NOTICE files -->
</plugins>
</build>
</project>
diff --git a/pom.xml b/pom.xml
index 593506af7f9..dfc511fa93f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -778,6 +778,7 @@
<module>hbase-logging</module>
<module>hbase-compression</module>
<module>hbase-extensions</module>
+ <module>hbase-dev-generate-classpath</module>
</modules>
<scm>
<connection>scm:git:git://gitbox.apache.org/repos/asf/hbase.git</connection>
@@ -937,6 +938,10 @@
hbase-thirdparty.
-->
<hbase-thirdparty.version>4.1.9</hbase-thirdparty.version>
+ <!-- for.exclusion version are NOT for direct dependencies. To use the
provided
+ scope to transitively exclude some transitive dependencies, we need to
specify
+ some existing version to for maven. -->
+ <tomcat.version.for.exclusion>9.0.93</tomcat.version.for.exclusion>
<!-- Coverage properties -->
<jacoco.version>0.8.8</jacoco.version>
<jacocoArgLine/>