blob: 4b27f55f11b6a6970768c4ffb66b1da6fef7f924 [file] [log] [blame]
This project packages relocated third-party libraries used by Apache HBase.
DISCLAIMER: This project is for Apache HBase internal use. Included libs
and/or their versions are subject to change at the dictate of hbase without
regard to the concern of others!
We have a number of submodules, one per ornery lib -- protobuf and netty --
where we need special-handling and then a bucket for all the rest,
hbase-shaded-miscellaneous. This latter includes protobuf-util, gson, and guava.
General philosophy is many modules rather than a few fat ones so we can keep
dependency narrow; a fat jar would put a load of unnecessaries on the
CLASSPATH. The hbase-shaded-miscellaneous is a sort of all-the-rest but it
is also libs that depend on each other and are awkward to disentangle.
All shading is done using the same relocation offset of
org.apache.hbase.thirdparty. We add this prefix to the relocated thirdparty
library class names.
See the pom.xml for the explicit version of each third-party lib included.
Note that in hbase-shaded-protobuf, we unzip the protobuf jar to src/main/java
rather than to a dir under target because the jar plugin wants src here (its
hard to convince it otherwise).
To build, just run:
$ mvn install
To deploy to mvn central, run:
$ mvn install deploy -Papache-release -Prelease
To build a src tarball:
$ mvn clean assembly:single
(Make sure you have your credentials set over in ~/.m2/settings.xml, etc. -- see
hbase refguide for publishing SNAPSHOTS/Release Candidates)