Carsten Ziegeler wrote: > It *should* be passed on transitively, but interestingly in some cases > it is not! (One of the unpredictable things of maven) While it is passed > on on my laptop (W2K) it is not on my home computer (WXP) - both using > the same JDK and the same m2 version (2.0.4). So that's why I had to add > it to the auth pom. >
Right i figured this one out. There is no dark magic involved after all: 1. MNG-1797 states that if you exclude a lib from a dependency then that lib will not get passed on transitively to artifacts dependending on the pom you've just added the exclusion to (it's hard to explain, just read the ticket and you'll see what i mean) 2. In r418215 Reinhard did some pom cleanup on the core : r418215 | reinhard | 2006-06-30 11:37:05 +0200 (Fri, 30 Jun 2006) | 1 line clean up dependencies: set OSGi deps to 'provided'; set Ant&cli deps to 'provided' (cli support should be moved to a separate module; add more excludes to remove transitive dependencies on junit, xmlunit, excalibur unit testing fw, ant-optional, servlet api) --- Normally this pom refactoring would have been 100% OK. However our current servlet-api dependency is marked as <scope>provided</scope>, which means it is not passed on transitively. So in fact our modules have been using the servlet-api from one of our dependencies (commons-jxpath) all along. Now when Reinhard excluded servlet-api from jxpath the problem surfaced. We should therefore add servlet-api directly to any modules that require it, with scope provided. HTH Jorg