Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Circular dependencies between classes is not a problem per se (its a feature). However, you should check your design and justify the dependencies.</p> <p>Eclipse projects are perhaps a bit overused. Unfortunately, Eclipse doesn't really handle having many (10+ or so ) projects, and the othervise excellent partial compiler gets slower and the compiling process seems to get more buggy. </p> <p>In several development projects i've been involved in, merging and reducing the number of projects has led to shorter build times and less build problems. </p> <p>In inhouse applications, large and small, and if it is likely that everyone working on the code will have access to all the code, then there is actually little point in dividing the code between projects. </p> <p>If you are worried about keeping track of the dependencies, it is possible to enforce rules for dependencies between packages.</p> <p>Its quite common to have a "business layer" project, a "data" layer project and a gui project for each "module" in a large application, and then you are bound to end up with a few circular dependencies if you are not creating artifical "interface projects" etc. </p> <p>Before you go to a great length to remove dependecies, consider if the dependcies in fact are real and the projects maybe should be merged instead. </p> <p>Remember that abstract concepts like "modules" or "layers" does not neccesarily mean that you have to have matching projects or folders (or whatever.) Eclipse projects are a groups of files that you work on, nothing more or less really.</p> <p>You might want to read about <a href="http://thedailywtf.com/Articles/The-Mythical-Business-Layer.aspx" rel="nofollow noreferrer">the-mythical-business-layer</a>.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload