3

Eclipse GalileoでビルドしようとしているレガシーJava(母国語ではない)アプリがあります。

それは私自身のものではないので、私はデザインの品質について話すことはできませんが、私は次のようなものを持っている多くの例に出くわします:

たとえば、「lib_a」というプロジェクトでは、次のファイルが含まれています。

import com.acme.lib_b.onething;

一方、プロジェクト「lib_b」には次のものが含まれます。

import com.acme.lib_a.anotherthing;

もちろん、問題は、エラーが原因で、外部アーカイブとして他のプロジェクトに追加できる.jarファイルを作成できず、その逆もあるため、1つのプロジェクトをビルドできないことです。

これは、Javaアプリケーションを構築する際にかなり一般的な出来事であるに違いないと私には思えます。ここでは一から書き直すことはできないので、「他の人が何をしているのか」を知りたい。

4

4 に答える 4

4

Eclipseでプロジェクトをリンクできるため、jarを宣言するのと同じように、基本的に1つのプロジェクトを別のプロジェクトの依存関係として宣言することになります。

プロジェクト:->プロパティ-> [プロジェクト]タブをクリックし、[追加]をクリックすると、開いているプロジェクトのオプションが表示されます。さらに、「A」を開くとリンクされたプロジェクト「B」が開くように、eclipseがこれらを追跡します。 。

于 2010-03-10T16:45:18.507 に答える
2

たぶん、あるものと別のものが各プロジェクトのコア部分ではない場合(たとえば、ユーティリティクラス)、一方を他方のプロジェクトに移動して参照を一方向にするか、共通のutil.jarを作成できます。

そうでなければ、プロジェクトが大幅に相互に関連している場合は、プロジェクトをマージします。

于 2010-03-10T16:49:00.453 に答える
2

基本的に貧弱なデザインの兆候。可能な解決策

  • 「共通の」ライブラリにリファクタリングする必要がある2つのライブラリに共通の部分があります
  • 両方のライブラリは実際には同じライブラリの2つの半分であり、組み合わせる必要があります
  • あるライブラリが別のライブラリの「内部」に依存しているため、この悪い依存関係を解消するためにいくつかのインターフェイスを導入する必要があります
于 2010-03-10T17:44:47.960 に答える
1

それらを1つのプロジェクトとしてマージします。

BなしでAを使用できず、AなしでBを使用できない場合、個別のJARファイルがあるとあまり役に立ちません。

于 2010-03-10T16:46:00.690 に答える