As far as I know, the exclude element works fine for us, also in the case of such transitive dependencies. Maybe you received "javax.servlet" via another dependency ?
As a workaround (or a test), you could add your <exclude> element(s) directly under (but at bottom of) the <dependencies> element of moduleA. This way, you don't care if the exclude is for spring-security or for some other module. On the other hand, you might forget after a while the exact reason why the exclude element is there. Regards, Marc 2014-05-09 0:17 GMT+02:00 Zac Jacobson <pie....@gmail.com>: > In my ivy.xml files, I have a module moduleA with a dependency like this: > > > <dependency org="org.springframework" name="spring-security" > > rev="3.1.2" > > > <exclude org="javax.servlet"/> > > </dependency> > > > And when I resolve, javax.servlet is not included, as I expected. > > Next, I have moduleB with a dependency back to moduleA > > > <dependency org="myOrg" name="moduleA"/> > > > I was surprised that when I run resolve, javax.servlet shows up for > moduleB. Is this expected? Is there a flag I'm missing to keep the excludes > in tact from depending modules? > > I see this for both Ivy 2.4.0 rc1 and 2.3.0 > > Thanks, > Zac >