Implementation

Provided Scope

Add a provided scope that makes a dependency essentiall compile scope, but it is not bundled, not on the execution classpath (eg for surefire) and the dependency is not transitive. It is intended for use in the final "end POM" only.

This addresses "compile only" dependencies, while not losing the benefits of having the scopes tied to each other.

Integration Test Scope

Add a integration-test scope for the integration test phase plugins, like cactus.


Original Discussion

This is the case of servlet API/J2EE, and perhaps some libraries provided by the final JDK but not compiling JDK. It's not that they are compile-only - it's that they may be provided for you at runtime. They are still required at runtime.

All we really need to change is to ensure:

Current options seem to be: