私は次の設定をしています: 共通のユーティリティと基本クラスを含むいくつかのプラグイン プロジェクトがあります。
- my.util
- my.util.ui
そして、それらを使用するプラグインが 1 つあります。ただし、これらのユーティリティ クラスをプラグインとしてインポートするのではなく、リンクされたソース フォルダーを使用したいと考えています。これはまったく問題ではなく、「ワークロード」プラグインはたとえば
- my.actual.plugin
3 つのプラグインはすべて同じワークスペースにあり、「実際の」プラグインには、通常の「src」ソース フォルダと、次のリンクされたソース フォルダ「src.my.util」(my.util/src へのリンク) および「 src.my.util.ui" (my.util.ui/src へのリンク)。リンクされたソース フォルダーは、個々の出力フォルダーにバインドされます (src -> bin 、src.my.util -> bin.my.util 、src.my.util.ui -> bin.my.util.ui)。
ここで、プラグインのビルド ファイル (build.properties、またはマニフェスト エディター経由) で、2 つのユーティリティ プラグインのソースが別々の jar にビルドされるように指定したいと考えました。そのため、「ランタイム」の下のマニフェスト エディターで、2 つの追加の jar (「新規...」->「my.util.jar」および「my.util.ui.jar」) を追加し、「ビルド」の下にこれらの jar に適切なリンクされた src フォルダー。結果の build.properties ファイルは次のようになります。
source.. = src/
output.. = bin/
source.my.util = src.my.util/
output.my.util = bin.my.util/
source.my.util.ui = src.my.util.ui/
output.my.util.ui = bin.my.util.ui/
jars.compile.order = .,\
my.util.jar,\
my.util.ui.jar
bin.includes = META-INF/,\
my.util.jar,\
my.util.ui.jar
これを実行可能なjarとしてエクスポートすると機能します(簡単にするために、メインメソッドなどを持つクラスが含まれていると仮定しましょう...)。
ただし、「デプロイ可能なプラグインまたはフラグメント」エクスポート ウィザードを使用してこれをエクスポートしようとすると、次のようなエラー メッセージが表示されます。
<workspace>\.metadata\.plugins\org.eclipse.pde.core\temp\org.eclipse.pde.container.feature\compile.org.eclipse.pde.container.feature.xml:4: The following error occurred while executing this line:
<workspace>\my.actual.plugin\build.xml:167: The following error occurred while executing this line:
<workspace>\my.actual.plugin\build.xml:138: <workspace>\my.actual.plugin\src.my.util does not exist.
The following error occurred while executing this line:
<workspace>\my.actual.plugin\build.xml:167: The following error occurred while executing this line:
<workspace>\my.actual.plugin\build.xml:138: <workspace>\my.actual.plugin\src.my.util does not exist.
エクスポート ウィザードで [ワークスペースでコンパイルされたクラス ファイルを使用する] オプションをオンにしても、このエラーが発生します。
個別のランタイム jar を使用しない場合は機能しますが、それは私が望むものではありません ;-)
奇妙なことに、ant ビルド スクリプトをエクスポートすると (エクスポート... -> 一般/Ant ビルドファイル)、パスが正しく展開されます (「仮想」相対リンクから絶対パスに変換されます)。また、ant スクリプトは正しくコンパイルされます。プラグインとしてのエクスポートでハックが機能しないのはなぜですか?
私は誰かがいくつかの提案を願っていますか?前もって感謝します :-)