Как использовать sbtosgi для создания пакета osgi в рамках задачи публикации sbt

Я использую плагин sbtosgiдля создания пакета OSGi из сборки sbt с помощью bnd. Пакет sbtosgi предоставляет задачу osgi-bundleдля создания пакета.Используя конфигурацию по умолчанию для sbtosgi, запуск osgi-bundleиз приглашения sbt обновляет JAR, чтобы включить правильные заголовки, но запуск clean packageприводит к JAR без заголовков OSGi. Говоря языком Maven, я пытаюсь сделать эквивалент использования maven-bundle-plugin с package = bundle, т. е. основным артефактом проекта должен быть пакет OSGi.

Основываясь на исходном коде плагина sbtosgi, мне кажется, что задача osgi-bundle перезаписывает JAR, созданный packageBin. Я попытался переопределить определение 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 и не знаю, куда обращаться. перейти отсюда. Любая помощь будет оценена по достоинству.

6
задан mpilquist 18 April 2012 в 14:00
поделиться