2

ビルド システムを Ant から Maven に移行しており、現在 Eclipse プラグインの構築に取り組んでいます。いくつかの調査を行った後、Tycho Maven プラグインを使用してビルドを行うことにしました。簡単ではありませんでしたが、この問題を除いてほとんどの問題を解決しました。

依存プラグインをビルドしようとすると、エラーが発生しました。いくつかのプラグイン A と、A に依存する (A のクラスを使用する) プラグイン B があるとします。これらのプラグインはどちらもマニフェスト ファーストです (そして があります<packaging>eclipse-plugin</packaging>)。

「B」をビルドしようとすると、次のビルド エラーが発生しました。

[ERROR] Access restriction: The type Constants is not accessible due to restriction on class pathentry C:/maven/repository/...

私はすべてを何度もチェックしましたが、後になって初めて、リポジトリ内のA.jarのMANIFEST.MFを確認する必要があることに気付きました。何らかの理由で、プラグインAの MANIFEST-MF から削除されました。不足しているエクスポートを手動でローカル Maven リポジトリの MANIFEST.MF に追加したところ (これが本当の問題であることを確認するためです!)、プラグインBのビルドが成功しました!Export-Package

問題は、ビルドされたプラグインで Export-Packageを削除しないように Tycho を構成する方法 (またはエクスポートするパッケージを構成する方法) です。

4

1 に答える 1

4

TychoはMANIFEST.MFプロパティの順序に依存していることが判明しました。私の場合、Export-Packageはの後に配置されImport-Packageました。この場合、Tychoは、プラグインを構築してMANIFEST.MFを再生成するときに、Export-Packageプロパティ全体を破棄しました。Export-Packageに配置されるとすぐに、すべてが正常に機能し、ターゲットMANIFEST.MFが期待どおりに生成されました。試したTychoバージョン:0.14.0、0.14.1 Import-Package

編集

バグはEclipseBugzillaで報告されました:提供されたMANIFEST.MFの「Import-Package」の後にある場合、「Export-Package」はターゲットMANIFEST.MFから削除されます

EDIT2

提出されたバグの詳細を参照してください。本当の理由は改行がないことでした-これは正式には明白なエラーです。Tychoは解析中に最後の行を無視したため、最後の行であるExport-Packageはターゲットマニフェストに含まれていませんでした。

于 2012-04-19T14:42:21.037 に答える