On 06/05/2014 09:23 AM, Roman Muntyanu wrote:
> Ok, I
rephrase my question.
> Could you define what you consider a usage of dependency A because of B and the
opposite?
I'll dare explaining
Indirect dependency (no dependency on A should be defined in C):
C ----> B ----> A
* C uses classes from B
* B uses classes from A
* C does NOT use classes from A
This will NOT be reported by dependency:analyze, so this shouldn't be
declared as a dependency of C, ever.
Direct dependency (explicit dependency on A should be
defined in C)
C ----> B ----> A
\_ _ _ _ _ _ _^
* C uses classes from B
* B uses classes from A
* C uses classes from A
This is actually the topic of the discussion. It's not about what B
uses, but what C uses.
Since C uses A, it's obvious that it should declare it as a dependency,
and not assume that B will be there to provide it, unless B is a
"grouping" component, like xwiki-commons-test-components, which is
supposed to bring everything needed for testing components.
Big +1 for declaring all the used dependencies, except for "boilerplate"
ones.
+1 for not declaring the transitive dependencies of standard groups:
testing tools chained to the commons-test-components, component modules
chained to xwiki-commons-component-api
-1 for declaring global dependencies, they're actually hidden inter-pom
dependencies.
--
Sergiu Dumitriu
http://purl.org/net/sergiu