On 10/6/05, Brett Porter <[EMAIL PROTECTED]> wrote:
> Sorry, I'm missing something. Why isn't B depending on A with "runtime" scope?

B depends on A with "compile" scope because it directly uses classes
from A during compilation, not just at runtime.

This gives the following scenario.
C --(compile)--> B --(compile)--> A

But, I am concerned that this implies..
C --(compile)--> B
C --(compile)--> A

when all that is necessary is..
C --(compile)--> B
C --(runtime)--> A

so that C can successfully compile and so that the classes in both A
and B can be loaded and resolved during unit testing of C.

Kind Regards,
John Fallows

> On 10/6/05, John Fallows <[EMAIL PROTECTED]> wrote:
> > Suppose I have 3 Maven2 projects, A, B and C.
> >
> > A is self-contained.
> > B depends on A for-implementation-only.
> > C depends on B.
> >
> > My understanding of dependency scopes is that if C depends on B at
> > "compile" scope, then all of B's "compile" scope dependencies will
> > also become transitive "compile" scope dependencies of C.
> >
> > How do I prevent the classes in A from being visible during
> > compilation of C?  Is this another usecase for "provided" scope?  Or
> > does marking the A dependency as "provided" scope may have other
> > implications for project B?
> >
> > I am concerned about the potential to introduce an accidental direct
> > dependency from A to C.
> >
> > Ideally, I'd like project B to control the full set of compile
> > dependencies that are valid exports as transitive dependencies.
> >
> > Although I don't want to expose B's dependencies during compilation of
> > C, some of those dependencies will be necessary at runtime or during
> > unit test execution of C.
> >
> > Perhaps we could specify "compile" scope for C's dependency on project
> > B itself, but "test" scope (say) for all of project B's dependencies?
> >
> > Kind Regards,
> > John Fallows.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to