Hi all - I'm working on moving a sizeable multimodule project from Ant to Maven, and have, along the way, run into a number of annoying circular dependency problems. This project was set up using some custom Ant tasks/targets for inter-module dependency management and unit testing, which worked nicely in that context but have resulted in the problems I'm facing now. The current situation I've got is that all of the modules get compiled before any of the unit tests are run, so there are a number of cases where module A depends on module B for A's tests to run, but B depends on A to compile before it can compile. We've been able to resolve most of those cases by moving code around, reworking tests slightly, etc, but we've still got one particularly nasty set remaining, and I'm not sure how to fix it.
In this case, we've got module A, and then modules B, C, and D. Modules B, C, and D are test harnesses (or related code) for module A, and depend on module A's classes to compile, while module A depends on B, C, and D to run its tests. B and C seem like their source can just be moved to A/src/test/java, but module D's jar is also packaged in a bundle that's used in some automated testing outside of the build. Any ideas on how I can streamline this insanity? =) A.