模块中的包可见性



我有这样的情况:包含框架基本功能的包1:com.foo.xxxx,以及方案2。com.bar.xxxx类使用的功能框架。

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

开发人员不应该在com.foo.xxx包中引用com.bar.xxx包中的任何类(因为foo是框架,所以应该在bar中使用框架)。当然,这种情况偶尔会发生。该项目在Intellij中可以很好地编译,但是当部署framework.jar时,对运行时有一个无法解决的依赖。

是否有任何框架或方法来解决这个在编译时?有人有过这样的经历吗?我可以使用APT吗?

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

任何想法?

谢谢。

z .

我建议您定义2个单独的项目。AFAIK ide(我不知道IntelliJ,虽然)应该防止您的项目循环依赖。或者更好的方法是:使用像Maven这样的构建工具来管理你的依赖。

如果你不想或者不能将代码拆分到两个项目中,有一些工具,比如JDepend,可以检测包的依赖周期。

最新更新