I believe what happens here is that the dependency declared closest to
your project wins. But you can control this through
dependencyManagement in your project.

/Anders

On Tue, Jul 17, 2012 at 5:06 PM, Graham Crosmarie
<[email protected]> wrote:
> A defines a dependency on D with scope test and is a pom project
>
> B defines a dependency on D with compile (default) and is a jar project.
> A is the parent pom of B.
> When I run dependency:tree I get what I want for B : D with scope compile.
>
> I have other projects (C) whose parent is A and which depend on B with scope
> compile(default).
> My problem is that the D dependency for such projects is in scope test
> (inherited from A) instead of scope compile (retrieved through the
> dependency on B).
>
> In other words Maven chooses the wrong scope for my C projects. In fact, I
> think it always takes the one from the before parent and ignores the one
> from the dependency.
>
>
> On 17/07/2012 15:29, Aliaksei Lahachou wrote:
>>
>> Hi!
>>
>> In parent A, so you define scope in dependency or dependency management
>> section. If the latter, then it overrides scope of the transitive
>> dependency.
>>
>> In which scope is dependency B? If it's in test scope, than its
>> dependencies will be in test scope, too.
>>
>> It would be much easier if you could show the POMs.
>>
>> Regards,
>> htfv (Aliaksei Lahachou)
>> Am 17.07.2012 09:15 schrieb "Graham Crosmarie" <
>> [email protected]>:
>>
>>> Hello,
>>>
>>> I have a problem with my dependency pattern and I am not sure that maven
>>> behaves correctly in this case.
>>>
>>> Here is my case :
>>>      - I am using Maven 2.2.1.
>>>      - I have a project A which defines a dependency D with scope test.
>>>      - I have a project B whose parent is A and which defines D as a
>>> dependency in scope compile.
>>>      - My project hierarchy defines a lot of projects whose parent is A
>>> and
>>> who have B as a dependency.
>>>
>>> My problem is : all these "subprojects" have D as dependency in scope
>>> test
>>> (from A).
>>> I think that the correct behaviour would be to have D with scope compile
>>> (from their dependency on B) because scope compile 'contains' scope test.
>>> But Maven 2.2.1 does not work that way :-).
>>>
>>> Is there any way to force my projects to use the D scope from project B
>>> instead of the one from its parent (project A) ?
>>>
>>> Thanks in avance,
>>>
>>> --
>>> Signature
>>> Graham CROSMARIE
>>> R&D Engineer
>>> Linagora GSO -- www.linagora.com <http://www.linagora.com>
>>>
>
>
> --
> Signature
> Graham CROSMARIE
> R&D Engineer
> Linagora GSO -- www.linagora.com <http://www.linagora.com>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to