Is dependency-reduced-pom.xml
created by Maven shade plugin automatically used in projects that depends on the uberjar (instead of the ordinary pom.xml
)?
Asking this after reading a number of dependency-reduced-pom.xml related questions and haven't found the answer yet:
Maven shade plugin adding dependency-reduced-pom.xml to base directory
What is the purpose of dependency-reduced-pom.xml generated by the shade plugin?
What is `dependency-reduced-pom.xml` file which created when calling maven package command?
The dependency-reduced-pom. xml removes transitive dependencies which are already in your shaded jar. This prevents consumers from pulling them in twice.
of your question: If you don't specify a version there are various different outcomes: a) you will get an error... b) if you have defined the version in the dependency management of the project's parent's pom, then that version is taken. The parent of the project doesn't have to be an enclosing superproject.
If the dependency/jar is found here then it add the jar file to you build path. After that it uses required class file from the jar for compilation. If the dependency is not found in ~/. m2 then it looks for your local private repository (If you already have configured any using setting.
The dependency-reduced-pom.xml
is generated at build time into ${basedir}
of the project. This file is a temporary file that is only used for packaging into the shaded jar. Quoting the documentation of the createDependencyReducedPom
attribute:
Flag whether to generate a simplified POM for the shaded artifact. If set to
true
, dependencies that have been included into the uber JAR will be removed from the<dependencies>
section of the generated POM. The reduced POM will be nameddependency-reduced-pom.xml
and is stored into the same directory as the shaded artifact. Unless you also specifydependencyReducedPomLocation
, the plugin will create a temporary file nameddependency-reduced-pom.xml
in the project basedir.
To make it clear, after the maven-shade-plugin
has run:
dependency-reduced-pom.xml
will have been generated inside the root folder (this is considered an open issue with this plugin);META-INF
directory and not the reduced POM (this is not really important but better mention it - there was an issue about this that was closed automatically: MSHADE-36);If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With