Maven's POM reference states the following:
provided - this is much like compile, but indicates you expect the JDK or a container to provide it at runtime. It is only available on the compilation and test classpath, and is not transitive.
...
system - this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository.
I have now converted a project with a lot of 'system' dependencies to 'provided'. However, it appears that system dependencies are transitive, which makes them very un-similar to provided, and is now causing many missing dependencies in my build. My question is twofold:
- Is system scope transitive? If so, is the Maven reference wrong or incomplete?
- Is there a way to make dependencies transitive, without packaging them into the final assembly?
systemscope is similar toprovidedin that it is stating that the dependency will be provided by something other than Maven. - Stephen Connolly