Почему sbt-osgi добавляет директивы Include-Resource в мой MANIFEST.MF?

У меня есть проект sbt, настроенный (через build.sbt) для создания пакета OSGI (с помощью подключаемого модуля sbt-osgi).

По какой-то причине сгенерированный MANIFEST.MF содержит директиву Include-Resource, указывающую на (совершенно пустые) подкаталоги «resource» в моем каталоге сборки (в частности, src/main/resources и target/scala_2.10/resource_managed/main), несмотря на то, что я ничего не сделал, чтобы сообщить ему об этом (и Я определенно не хочу, чтобы мои артефакты указывали на места в моем домашнем каталоге).

Почему sbt-osgi делает это и, что более важно, как его остановить?

Мой build.sbt можно найти здесь: https://github.com/reggert/reb4s/blob/1cd91fb82aa978b2f202c618ca6403a66c15f8d7/build.sbt


person reggert    schedule 03.10.2013    source источник


Ответы (1)


Прошло несколько месяцев с тех пор, как я использовал подключаемый модуль OSGI, но я думаю, что могу вспомнить достаточно, чтобы направить вас в нужное русло. Во-первых, имейте в виду, что всю тяжелую работу здесь выполняет BND. Плагин sbt — это просто оболочка. Существует некоторое обсуждение заголовка Include-Resource. Я считаю, что вы можете установить этот заголовок на None или пустую строку с настройкой плагина additionalHeaders.

person joescii    schedule 04.10.2013
comment
Я попытался добавить эту строку: OsgiKeys.additionalHeaders := Map("Include-Resource" -> ""), но это не дало видимого эффекта. - person reggert; 04.10.2013
comment
Похоже, это ошибка в sbt-osgi. Include-Resource не является допустимым заголовком OSGi MANIFEST. Это параметр конфигурации BND. Однако каким-то образом он устанавливается как заголовок OSGi. - person reggert; 04.10.2013
comment
Я только что подтвердил, что это ошибка, и ее можно исправить, внеся односимвольное изменение в исходный код sbt-osgi! :-D - person reggert; 04.10.2013
comment
Потрясающий! Отправьте им запрос на вытягивание и избавьте нас от головной боли в будущем :) - person joescii; 04.10.2013
comment
Всем привет. Просто к вашему сведению. Я написал плагин OSGi шесть месяцев назад. Это также позволяет генерировать манифест через разрешение зависимостей BND и OBR и P2 через Tycho API. Он недостаточно зрел для публики, но достаточно стабилен для этого сообщения. Расположен по адресу github.com/digimead/sbt-osgi-manager. Примеры находятся в src/ sbt-test и другие проекты, такие как github.com/digimead/digi. -TABuddy-model/blob/master/build.sbt Надеюсь, это будет кому-то полезно. - person Ezhik; 05.10.2013