Memories.この広告は、90日以上更新していないブログに表示しています。OSGiEclipse-pluginを作っているわけですが、依存関係の泥沼にはまりました。最終的に解決に成功したので、ここに記しておきます。OSGiにおける依存の記述について。atmarkit)OSGiではBundle間の依存をMANIFEST.MFに記述します。MANIFEST.MFのImport-PackageとExport-Package属性でスコープの管理をするわけです。必要なクラス群をBundleにする必要があります。(tychoでいうeclipse-plugin)この様子を図に示しました。Bから提供されたAPIを用いてEclipse-pluginを記述するといった構成にしています。librariesをどうしましょう。当初自分は勘違いをし、各Bundle内に必要なjarを物理的に持たなくてはならないと思っていました。あれば、例えばSlf4jが全てのBundleで依存されていたとすると、全てのBundleにコピーしなければならなくなります。答えは、Bundle化し、Exportで参照を提供する、です。CのMANIFEST.MFでExportを書いています。org.junit;version="4.10.0"と書いてやります。my.bundle.CのようにBundle-SimbolicNameを書いても構いません。こちらだとpackageを逐一追加する手間が省けます。これら一連のプロジェクトは、maven-tychoを用いてビルドをしました。Cを一度にビルドすることは出来ません。ひとつのハマりポイントとして、tychoは依存関係解決の方法としてMANIFEST.MFを優先するモードと、pom.xmlを優先するモードの二つを持っています(参考)。これらを混在させてはいけません(たぶん)。今回はpomを読ませるモードで実行しました。以下を該当プロジェクトのpom.xmlに設定します(親pomにセットしてもいいです)。featureやrepositoryプロジェクトに対してもこれをセットする必要があります。</plugin>たぶんこれでうまくいくはず。resolveと出たらpomのdependencyとMANIFESTのimportを記述して、、という形でいつかは解決できるはずです。ちなみに、ImportしたパッケージをそのままExportするとエラーが出るような気がします(未確認)。以上のゴールにたどり着くのに参考にしたのが、m2eプロジェクトでした。m2e-corem2e-maven-runtimeにthird-partyを集めて、pomDependenciesを親pomでconsiderにセットし、かつ各MANIFEST.MFのImport/Exportで依存を記述しています。tychoを使っている場合は参考になると思います。2012用の記事です。Site...2012-03-31TychoでEclipseプラグインへのテストを実行する備忘録。(1)リンクヘルプはてなブログお知らせはてなブログをはじめよう!tk_shgさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。