Sean Schofield wrote:
Do we really end up with everything from the top level in the lib dir? What I'm thinking is something like this being in a 'user' project.<dependency> <groupid>org.apache.myfaces</groupId> <artifactId>tomahawk</artifactId> </depdency> This will cause the transitive dependency thing to pull in everything that tomahawk depends on but won't touch the top level pom as I understand it anyway. Am I wrong about this?Won't this be the case either way. The dependencies for tomahawk are the dependencies for tomahawk. It doesn't matter if Maven learns this exclusively from the tomahawk.pom or from a combination of myfaces.pom (parent) and tomahawk.pom. Is this reasoning correct?
I don't believe so. Myfaces-impl can be used without tomahawk. Tomahawk can be used without Myfaces-impl. So neither has "transitive dependencies" on the other project.
And as an earlier post pointed out, myfaces-impl may depend on commons-lang 1.1 while tomahawk may depend on commons-lang 1.2. In this case, people only wanting to use the core myfaces (not tomahawk) should be able to use just commons-lang 1.1. Only if they add tomahawk do they need to upgrade the commons-lang library.
There are transitive dependencies between commons and impl, or commons and tomahawk.
Regards, Simon
