About the author
So, project A which compiles to JAR A requires classes in JAR B.Project B which compiles to JAR B requires classes in JAR A.
I was asked about this, so I suggested decoupling the projects such that on a clean system with no JARs, project A and project B can be built.
On thinking about this, there is two approaches to the solution.
Solution 1 - Declare methods in interfaces and then have project A use these interfaces instead of depending on the classes directly, and similarly for project B. This will require implementing class factories, which returns singleton classes that implements these interfaces.
Solution 2 - An approach that is quite tedious.