模块中的包可见性

时间:2013-06-19 07:43:00

标签: java package

我遇到这种情况: 包1:com.foo.xxxx,具有框架的基本功能,和 使用框架功能的类包com.bar.xxxx。

我在同一个项目中有两个包(我使用IntelliJ)。

开发人员不应该从com.foo.xxx包中的com.bar.xxx包中引用任何类(因为foo是frameword,你应该使用栏中的框架)。但当然现在而且发生了这种情况。该项目将在Intellij中正常编译,但是当部署framework.jar时,对运行时存在未解决的依赖。

是否有任何框架或方法可以在编译时解决此问题?有人有这方面的经历吗?我可以使用APT吗?

我可以想象com.foo.xxx的标志或注释会在编译时抛出错误,如果com.bar.xxx中的一个类在com.foo下的任何类中使用。

有什么想法吗?

感谢。

ZS。

1 个答案:

答案 0 :(得分:1)

我建议您定义2个单独的项目。 AFAIK IDE(我不知道IntelliJ)应该阻止你从项目的循环依赖。甚至更好:使用Maven等构建工具来管理依赖项。

如果您不希望或者可以将代码泄漏到2个项目中,那么可以使用JDepend等工具来检测包依赖性循环。