sbtosgiプラグインを使用して、 bndを使用してsbtビルドからOSGiバンドルを生成しています。sbtosgiバンドルは、バンドルを生成するためのosgi-bundleタスクを提供します。sbtosgiのデフォルト構成を使用して、sbtプロンプトからosgi-bundleを実行すると、JARが更新されて適切なヘッダーが含まれますが、クリーンなパッケージを実行すると、OSGiヘッダーのないJARになります。Mavenの話では、packaging = bundleでmaven-bundle-pluginを使用するのと同じことをしようとしています。つまり、プロジェクトの主な成果物はOSGiバンドルである必要があります。
sbtosgiプラグインのソースを読んだところ、osgi-bundleタスクがpackageBinによって作成されたJARを上書きしているように見えます。packageBinの定義をオーバーライドして、デフォルトのタスクの代わりにosgi-bundleタスクを使用するようにしました。
packageBin in Compile <<= OsgiKeys.bundle
ただし、これにより循環参照が発生しました。
[error] Cyclic reference involving
[error] {file:project/*:osgi-bundle
[error] {file:project/compile:full-classpath
[error] {file:project/compile:exported-products
[error] {file:project/compile:package-bin
私はSBTにかなり慣れていないので、ここからどこに行けばよいかわかりません。どんな助けでもいただければ幸いです。