私は、ビルド プロセスで Bndtools を使用して、felix/osgi でアプリケーションを喜んでビルドしています。サードパーティの非バンドル jar をすべてバンドルとしてラップし、すべての社内 jar をバンドルとして構築し、アクティベーターとサービスを含む 4 つのバンドルに取り組んできました。これまでのところ、すべてが美しく機能しています....
...そして、昨日突然、bndtools が '.' を付け始めました。MANIFEST.MF の Import-Package ディレクティブで。これにより、次のエラーが発生しました。
Auto-deploy install: org.osgi.framework.BundleException: Imporing '.' is invalid.
また、バンドルのロードに失敗します。
おそらく、昨日ソース コードに変更を加えたことが原因だと思われますが、私の人生では、それが何であるかを理解することはできません。ここ数日で行った変更は、自分のソース コードだけです。サードパーティの依存関係は追加していません。
eclipse bnd ビルダーにバンドルを生成させると、「.」が配置されません。インポートリストに含まれていますが、ビルドプロセスにantタスクを使用しており、「。」を入れています。パッケージリストに。
なぜそこにそれを入れているのか、誰かコメントできますか?
bnd ファイルは次のとおりです。
Export-Package: \
com.omni.service.*, \
com.omni.buildup.*
Bundle-Version: 1.0.0
Bundle-Activator: com.omni.service.osgi.OmniQueryServerActivator
Bundle-SymbolicName: omniquery-service
-resolve: auto
-runee: JavaSE-1.7
-runfw: org.apache.felix.framework;version='[4.2.0,4.2.0]'
-runbundles: \
org.apache.felix.configadmin;version='[1.8.8,1.8.9)',\
org.apache.felix.log;version='[1.0.1,1.0.2)',\
org.apache.felix.metatype;version='[1.1.2,1.1.3)',\
org.apache.felix.scr;version='[1.8.2,1.8.3)'