2010-03-10 50 views
3

我试图在Eclipse Galileo中构建遗留Java(而非我的母语)应用程序。在Eclipse中构建带循环导入的Java项目

,因为它不是我自己的,我不能到设计的质量说话,但我跨多个实例的来临,我会是这样的:

在一个项目叫,说“lib_a”,我有一个包含文件此:

import com.acme.lib_b.onething; 

项目,另一方面“lib_b”,将包含:

import com.acme.lib_a.anotherthing; 

当然,问题是,一个项目能不会是埠因为这些错误阻止了我创建一个.jar文件,该文件可以作为外部存档添加到另一个项目中,反之亦然。

在我看来,这必须在构建Java应用程序相当屡见不鲜。从头开始重写它不是一个选项,所以我想知道“其他人做了什么。”

回答

4

您可以在eclipse链接项目,所以你基本上宣告一个项目作为另一个的依赖,就像声明一个罐子。

项目: - >属性 - >点击“项目”选项卡,点击“添加”,你可以选择任何打开的项目。此外,eclipse跟踪这些,以便当你打开“A”链接的项目“B”打开。

+0

不知道这会解决这个错误,但是。 – Buggieboy 2010-03-10 16:46:17

+0

错误是一个完全独立的问题 - 你没有提到它们是什么! – 2010-03-10 16:48:25

+0

它将适用于加载导入。然而,如果你的项目真的搞砸了,而且他们有冲突的进口和类似的东西,那么你最好还是手工制作一个小型的罐子来包装。 – 2010-03-10 16:50:05

1

我只是将它们合并为一个项目。

如果你不能使用的无B和你不能采用B不具有独立的JAR文件似乎并不十分有用。

2

也许如果onething和anotherthing不是每个项目(例如,实用工具类)的核心部分,那么你就可以移动到彼此的项目,以使引用单向的,或者创建一个共同的util.jar。

否则,如果它们是相互关联的,在很大程度上我会合并项目。

+0

我喜欢常见的有用想法。它增加了一个额外的步骤,但它可以让我把问题的定义分解出来,这样我至少可以建立一个项目。公共图书馆甚至可能是暂时的,直到我可以将这些定义重新引入原始类。 – Buggieboy 2010-03-10 17:01:57

2

基本上是一个糟糕的设计的迹象。可能的解决方案

  • 中有2个库共用部位应重构为一个“共同”库
  • 这两个库是真的两半,同一个库,并应结合
  • 一个库为依托在另一个库的“内部”和一些接口应出台打破这种坏的依赖