跨项目依赖和循环依赖

Cross project dependencies and circular dependencies

Java EE Web 应用程序 向导创建一个包含两个项目的应用程序结构:

它们的链接方式是,在 ViewController/Project properties/Dependencies 中,您可以找到模型作为 ViewController 的依赖项。到目前为止一切顺利:我可以从我的视图服务中调用 EJB 模型实体。

但是,似乎无法使用模型中 ViewController 处定义的 class。如果您将 ViewController 设置为模型的依赖项,您会收到有关循环依赖项的讨厌警告。

Warning: Project Model.jpr has a circular dependency with ViewController.jpr. Check your project dependencies.

据我所知,Java 本身没有任何东西可以阻止程序这样做。使用 JDeveloper 时如何在两个方向上跨越项目边界?

你说的是不同的依赖关系。该警告是构建依赖性的结果,而不是 Java 警告。从 Java 的角度来看,您只需将 ViewController 创建的 jar 添加到模型中即可获得所需内容。问题是如何告诉构建系统创建 jars 的顺序。视图 jar 可能需要当前构建在模型中的更改,反之亦然。所以构建也可能会失败。

如果Model和View都需要class,可以直接放到Model中,也可以引入第三个工程,Model和View对第三个工程的依赖