Dependency management of Java EE projects
The dependency management of an enterprise project targets the dependencies that are added on top of the JDK. This includes dependencies that are required during compilation, tests, and at runtime. In a Java enterprise project, the Java EE API is required with provided dependency scope. Since the APIs are available on the application server, they don't have to be included in the packaged archive. The provided Java EE API therefore doesn't have an implication on the package size.
Real-world enterprise projects usually include more dependencies than this. Typical examples for third-party dependencies include logging frameworks such as Slf4j, Log4j, or Logback, JSON mapping frameworks such as Jackson, or general purpose libraries such as Apache Commons. There are several issues with these dependencies.
First of all, third-party dependencies are usually not provided, thus increasing the size of the artifact. This doesn't sound that harmful, but has some...