'How to find out the packages that should be shadowed?

I am using Gradle to create an uberjar. I want to shadow the packages as the App where I plan to use this uberjar might use the same packages with different versions. I know I can use the below code to rename the packages

shadowJar { 
  relocate 'org.apache', 'shadowed.version.org.apache' 
}

The question I have is, how do I know exactly which package should I rename? As for my uberjar, the dependency has multiple dependencies, which further have multiple dependencies. How do I rename all of the packages in my uberjar? and if that would that be a good idea?

Thanks



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source