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 _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

