Am 12/15/16 um 09:28 schrieb Robert Scholte:
> I think I understand where the confusion is coming from. We must be very
> clear about definitions.
> Transitive means adding all indirect dependencies with the compile and
> runtime dependencies.
> So the transitive *scope* itself is not transitive, meaning all indirect
> *test*-scoped are not added to the classpath. But IMO a test-scoped
> *dependency* is transitive, all its compile and runtime dependencies must be
> added to the classpath.
>
That's the way master behaves and it makes sense. What is different is
when a transitive dependency is managed to something not transitive.
That will disappear from the resolution result. I'd expect that to
happen, BTW. Means you just must be sure that managing a transitive
dependency from something transitive to something non-transitive will
make that dependency disappear the same way it would disappear when not
managed but declared that way directly.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>GID</groupId>
<artifactId>AID</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
All GID:AID dependecies are handled the same way they are handled when
'<scope>test</scope>' had been declared in the model for the dependency
directly. That's consistent. The resolver will apply that 'test' scope
everywhere for GID:AID no matter what has been declared in the model but
did call the 'DependencySelector' without that management applied.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]