Поместить Maven POM в оболочку OSGi через BND?
У меня есть сторонний JAR-файл, который я хотел бы использовать в среде OSGi, но в нем нет файла MANIFEST.MF, соответствующего OSGi. Итак, я использую BND (ну, BNDTools), чтобы обернуть его. Это работает хорошо, как и идет, но:
Я также хотел бы иметь возможность легко использовать его с Maven (для которого он также не настроен), поэтому я хотел бы включить POM Maven, который описывает его зависимости. Есть ли способ сделать это через BND? Вот что я попробовал:
Я посмотрел на макет различных Mavenized JAR и обнаружил, что они, кажется, включают POM в META-INF/maven/groupId/artifactId. Например:
META-INF/maven/com.example/com.example.greatapilibrary/pom.xml.
Итак, я сделал POM и поместил его в такое место, а затем изменил bnd.bnd, чтобы иметь:
-include: META-INF/maven/com.example/com.example.greatapilibrary/pom.xml
Сгенерированный JAR, однако, не включает файл.
Я думаю (но не уверен на 100%), что я, вероятно, неправильно читаю документацию BND по "-include" - похоже, это может быть сделано для включения дополнительных директив манифеста в результирующий файл MANIFEST.MF, а не для включения дополнительных файлов в JAR.
Но в любом случае, есть ли способ выполнить то, что я хочу сделать, используя BND? Или мне нужно использовать другую программу для перезаписи, чтобы создать JAR с POM, а затем использовать BND, чтобы перемотать его , вместо того , чтобы использовать его для оригинальной JAR?
Заранее благодарю за любую помощь.
1 ответ
Просто попробуйте добавить:
-includeresource: META-INF/maven/com.example/com.example.greatapilibrary/pom.xml=META-INF/maven/com.example/com.example.greatapilibrary/pom.xml
на ваш bnd.bnd
Эта ссылка объясняет разницу между include
а также includeresource
(такой же как Include-Resource
): http://bndtools.org/faq.html#whats-the-difference-between--include-and-include-resource