他のバンドルが依存できるようにしたいバンドルとして、いくつかのjarファイルをラップしようとしています。Spring dm Serverでは、これはjarファイルを新しいバンドルプロジェクトに追加し、すべてのクラスをエクスポートし、jarファイルがビルドパスとクラスパスにあることを確認するのと同じくらい簡単でした。
これが私がやろうとしていること(そして私が失敗しているところ)の単純で標準的な例です:
たとえば、Joda Timeを例にとると、これをバンドルにして、依存関係として共有できるようにします。まず、jarファイルを保持するバンドルを作成します。
- 新しいバンドルプロジェクトを作成するEclipse(Indigo Java EE)
- プロジェクトルートにフォルダ「lib」を作成します
- joda-time-1.6.1.jarを「lib」フォルダーに追加します
- lib/joda-time-1.6.1.jarをビルドパスに追加します
src / META-INF / MANIFEST.MFを更新して、すべてのクラスをエクスポートします。
マニフェスト-バージョン:1.0 バンドルバージョン:1.0.0 バンドル名:joda-time バンドル-マニフェストバージョン:2 バンドル-SymbolicName:org.joda.time Bundle-ClassPath:lib / joda-time-1.6.1.jar、 。 エクスポート-パッケージ:org.joda.time、 org.joda.time.base、 org.joda.time.chrono、 org.joda.time.convert、 org.joda.time.field、 org.joda.time.format、 org.joda.time.tz
ここで、これを作成した新しいバンドルで使用します。
- Eclipse(Indigo Java EE)「MyDepTest」で新しいバンドルプロジェクトを作成します
src / META-INF / MANIFEST.MFを編集して、org.joda.timeをインポートします。
マニフェスト-バージョン:1.0 バンドルバージョン:1.0.0 バンドル名:MyDepTest バンドル-マニフェストバージョン:2 バンドル-SymbolicName:com.foo.deptest インポートパッケージ:org.joda.time インポートバンドル:org.joda.time; version = "[1.0.0,1.0.0]"
org.joda.timeバンドルをプロジェクト参照に追加して、Eclipseが依存関係を解決できるようにします
クラスを書く:
package com.foo.deptest; import org.joda.time.DateTime; public class SimpleDepTest { public SimpleDepTest (){ DateTime dt = new DateTime(); } }
これでorg.joda.time.DateTime
解決するはずですが、Eclipseは次のエラーを示し、赤い下線が表示されますorg.joda
インポートorg.jodaを解決できません
どこが間違っているのですか?他のバンドルのクラスを使用できるように、jarをバンドルとしてラップするにはどうすればよいですか?