3

Eclipse では、別のプロジェクトからランタイム依存関係を指定して、プロジェクト内に起動構成を作成することができます。私が見つけた問題は、複数のプロジェクト ワークスペースがある場合、各プロジェクトが独自のライブラリを持っている可能性があるため、セカンダリ プロジェクトの明示的な依存関係を別のプロジェクトのライブラリに簡単に追加できることです。したがって、変更される可能性があります。

この問題の例は次のとおりです。

プロジェクト1
    +-- ソース  
    +-- ライブラリ  
           +-- jar1-v1.0.jar  
           +-- jar2-v1.0.jar  
プロジェクト2  
    +-- ソース  
    +-- proj2-tests.launch

proj2/src のコードから proj1/lib のライブラリへの依存関係はありません。それでも、proj2/src から proj1/src への依存関係はありますが、proj1/src のコードにはそのライブラリ jar1-v1.0.jar および jar2.v1.0.jar への内部依存関係があるため、 proj2-tests.launch の依存関係を proj1/lib のライブラリに追加する必要があります。これは、proj2-tests.launch の次の醜い行に変換されます。

<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<runtimeClasspathEntry path="3" projectName="proj1" type="1"/>
"/>
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<runtimeClasspathEntry internalArchive="/proj1/lib/jar1-v1.0.jar" path="3" type="2"/>
"/>
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<runtimeClasspathEntry internalArchive="/proj1/lib/jar2-v1.0.jar" path="3" type="2"/>
"/>

ソフトウェアを進化させたり、ライブラリをアップグレードしたりする必要が時々なければ、これは大きな問題にはなりません。 0.jar をバージョン v1.1 に。1 つのワークスペースに約 10 個のプロジェクトがあり、それぞれ約 5 つのライブラリと約 4 つの起動構成があるとします。ライブラリの単純なアップグレードを行うと、メンテナンスのオーバーヘッドが発生します。これは通常、必要のないファイルの変更を意味する必要があります。それとも私が何か間違ったことをしているのかもしれません...

私が述べたいのは、proj2 は proj1 とそのライブラリに依存しており、これを単に *.launch ファイル内のものに変換することです。それは可能ですか?

4

1 に答える 1

2

私が間違っていない限り、project1 を project2 のビルド パスに追加すると、project1 の依存関係が変わっても、project2 のランチャーには正しいクラスパスが含まれます。

代替テキスト http://img24.imageshack.us/img24/9511/eclipsebuildpath.png

(project2 のプロパティ、Java ビルド パス、[プロジェクト] タブ)

于 2010-05-18T04:11:00.777 に答える