Search code examples
javabuild-processdependency-management

Restrict dependencies between Java packages


What are the possibilities to enforce restrictions on the package dependencies in a Java build system? For example, the myapp.server.bl.Customer class should not be allowed to refer to the myapp.client.ui.customlayout package. I'm interested in either Ant-based or IDE-specific solutions.

I'd like to get an error message in the build indicating that a (custom) package dependency rule has been violated and the build aborted. I also would like to maintain the dependencies in a list, preferably in a text file, outside of the Ant scripts or IDE project files.

(I don't know Maven but I've read it here it has better support for module dependency management)


Solution

  • I believe Checkstyle has a check for that. It's called Import Control