
Uber-jars are often used to ship an application as a single file (makes it easy to deploy and run). So in this post I'm trying to present the 2 concepts without conflating them. Publish a client artifact with shaded dependencies Here is the title of the Jira issue for HBase that you linked in your question: But it's common to refer to a fat-jar-with-shaded-dependencies as "shaded jar", and if that jar is a client for another system, it can be referred to as "shaded client". Technically speaking, dependencies are shaded. This is different from packaging which is simply shipping the libraries files in side your own jar without relocating them to a different package. To Shade a library is to take the contents files of said library, put them in your own jar, and change their package. So the shading part is actually optional: the plugin allows to include dependencies in your jar (fat jar), and optionally rename (shade) dependencies. rename - the packages of some of the dependencies.

This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade - i.e. There is some confusion about the term, because of maven shade plugin, which under that single name does 2 things (quoting their own page):

The concept is usually associated with uber-jars (aka fat jars). Shading dependencies is the process of including and renaming dependencies (thus relocating the classes & rewriting affected bytecode & resources) to create a private copy that you bundle alongside your own code.
