Hi Marco,

It is very simple. Maven stops searching for the dependency when it finds
provided scope and maven assumes the dependency will be provided
externally. Best example being server library jars like servlet-api jar.

Below link will give you clear picture

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

On Tue, Jul 17, 2012 at 2:44 PM, Marco Speranza <[email protected]>wrote:

> Hi all...
>
> a friend of mine and I have experienced a compilation error when we
> have tried to compile this project:
>
> prj.a:
> public class A extends B{}
>
> prj.b:
> public class B extends C{}
>
> prj.c:
> public class C{}
>
> where their pom are:
>
> prj.a -> prj.b (provided scope)
>
> prj.b -> prj.c (provided scope)
>
> our compilation fails because C is not included in A's compile
> classpath as shown in the table [1]
>
> My question is... why the transitive 'provided' dependencies of a
> 'provided' dependency are not transitive and the transitive
> *'runtime'* dependencies of a 'provided' dependency is transitive?
>
> IMHO would be better that provided dependencies are transitive and
> runtime dependencies not, it isn't?
>
>
> have a nice day... :-)
>
>
> [1]:
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope
>
>
> --
> Marco Speranza <[email protected]>
> Google Code: http://code.google.com/u/marco.speranza79/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to