eclipse中的问题日志显示“在项目的构建路径中检测到一个循环......”任何想法如何摆脱这些循环依赖?我不知道哪些项目相互依赖。
答案 0 :(得分:14)
您可以在eclipse中调整循环依赖关系严重性:
Preferences > Java > Compiler > Building > Build path problems > Circular dependencies
答案 1 :(得分:2)
eclipse中的循环依赖表明Eclipse中的项目之间的构建路径中存在一个循环。
因此,如果你有5个项目,比如A,B,C,D和E,那么循环依赖可能是:
因此A->B->D->A
是一个循环。
由于这个循环,Eclipse不知道首先编译哪个项目。
您需要重构代码以消除此循环依赖关系。或者,如果实际代码没有这种依赖关系,请删除不必要的构建路径条目。
答案 2 :(得分:2)
在项目设置中,您可以看到依赖项,您可以做的是删除所有依赖项并逐个添加一个dep。循环意味着你不应该这样做。确定课程后的解决方案,让你的大项目A要求二级项目B的CB1级,CB1要求项目A的CA1级:
答案 3 :(得分:2)
有三种方法可以消除eclipse中项目之间的循环依赖关系,
1.转到项目 - > java compiler->建筑 - >启用项目特定设置。
选择构建路径问题并将警告作为循环依赖的选项。
2.转到project-> java构建路径。在“项目”选项卡中,选择项目并删除。
3.转到META-INF文件夹,打开MANIFEST.MF。在MANIFEST.MF视图选项卡中,您可以在“导入包:”列中查看循环相关项目。
从列中删除项目。
第一个选项并不能真正解决错误。第二个和第三个选项是解决此依赖关系的正确方法。
答案 4 :(得分:0)
要找出普通Java项目之间的依赖关系,请参阅项目属性| Java构建路径|项目。如果您有J2EE项目,Project Properties中还有一个附加设置项目参考。检查所有项目的那些,在一张纸(或屏幕)上构建图表,看看你可以做些什么来打破周期。
通常,健康的依赖关系图具有星形的形式,核心项目包含公共资源,每个叶项目实现一些特定的用户功能。具体而言,核心实际上可能包括几个相互依存的项目;对于较大的叶子也一样。
脱离依赖周期的典型方法是合并几个紧密耦合的项目。
答案 5 :(得分:0)
您可能需要重构项目或代码本身。与您的应用程序打包可能存在问题。
答案 6 :(得分:-1)
很久以前我遇到过这个问题,尽管我已经忘记了我是如何解决这个问题的,但是当谈到从所需项目中的一个班级到需求项目中的一个班级时,我有sendee在发送者中安装了一个java.lang.reflect.Method对象,可以调用该对象而不在发件人代码中声明sendee类。
我确定有更好的方法可以做到这一点,例如让发送方和服务方共享一个界面,但就编码经济而言,这似乎是最简单的。
正如其他答案似乎暗示的那样,这似乎不是真正的循环,而是Eclipse设计的神器。