Java模块和Cycle存在于模块依赖关系Module中

时间:2018-03-15 18:46:58

标签: java packages modularity

我有2个项目和

+ proj1 has
    + com.myproj1 has
        + Runner.class
        + Logger.class

+ proj2 has
    + com.myproj2 has
        + Test.class
        + Fact.class

module com.myproj1 {
    requires module com.myproj2;
    exports com.myproj1
}

module com.myproj2 {
    exports com.myproj2;
    requires module com.myproj1;// the problem is "Cycle exists in module 
    dependencies, Module... "
}

我在com.myproj1 Runner.class中使用来自com.myproj2的Test.class它是好的,直到这里但是当我尝试使用 它在Fact.class中的Logger.class给了我问题"循环存在于模块依赖,Module"中。我知道模块可以防止循环依赖。但是之后 这种情况的解决方案是什么>

1 个答案:

答案 0 :(得分:0)

由于您构建模块的方式,这是一个错误的依赖循环。 将Logger移动到自己的模块中,然后将其导入其他两个项目中。这是一般解决方案:分解人为导致循环的依赖性。

如果你有一个真正的循环依赖,你需要重新架构整个系统以防止它,但你没有这种情况。