title: What is the maven-shade-plugin used for, and why would you want to relocate Java packages?
body: <p>I found the maven-shade-plugin being used in someone's pom.xml. I've never used maven-shade-plugin before (and I'm a Maven n00b) so I tried to understand the reason for using this and what it does.</p>
  <p>I looked at the <a href="http://maven.apache.org/plugins/maven-shade-plugin" rel="noreferrer">Maven docs</a>, however I can't understand this statement:</p>
  <blockquote>
  <p>This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade - i.e. rename - the packages of some of the dependencies.</p>
  </blockquote>
  <p>The documentation on the page doesn't seem very newbie-friendly.</p>
  <p>What is an &quot;uber jar?&quot; Why would someone want to make one? What's the point of renaming the packages of the dependencies? I tried to go through the examples on the maven-shade-plugin apache page such as &quot;Selecting contents for Uber Jar,&quot; but I still can't understand what is being accomplished with &quot;shading.&quot;</p>
  <p>Any pointers to illustrative examples/use-cases (with an explanation of why shading was required in this case - what problem is it solving) would be appreciated. Lastly, when should I use the maven-shade-plugin?</p>