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.
I looked at the Maven docs, however I can’t understand this statement:
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.
The documentation on the page doesn’t seem very newbie-friendly.
What is an “uber jar?” 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 “Selecting contents for Uber Jar,” but I still can’t understand what is being accomplished with “shading.”
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?