Как сформировать.bnd файлы при использовании maven-bundle-plugin?
Я хотел бы построить компоненты OSGI, и мне сказали, чтобы использовать maven-bundle-plugin
, Я начал с добавления этого в мой pom.xml
:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.0</version>
<extensions>true</extensions>
<configuration>
<obrRepository>NONE</obrRepository>
<instructions>
<_include>-bnd.bnd</_include>
</instructions>
</configuration>
</plugin>
Обратите внимание на .bnd
файл, который передается <_include>
тег. Я слышал, как люди говорили, что эти файлы должны храниться как минимум или даже пустыми, а затем следует наблюдать за тем, что необходимо для импорта / экспорта и т. Д. Именно здесь я запутался. У меня есть мой MANIFEST.MF
файл, в котором я знаю, что импортировать и экспортировать. Тем не менее, мне нужно немного помочь, чтобы мой .bnd
файлы работают. Щас пытаюсь с пустым .bnd
файлы, и я не уверен, работает ли он так, как должен.
У кого-нибудь есть опыт работы с этим плагином и как я хочу, чтобы он работал?
Например, вот пример .bnd
файл. Однако я не знаю, как он решил, что они должны импортировать / экспортировать.
На данный момент, когда я пытаюсь проверить .jar
я получил
no main manifest attribute, in bundle-1.0.0.jar
ошибка, несмотря на то, что действительно MANIFEST.MF
в .jar
,
Обновление: я думал, что мог бы поделиться MANIFEST.MF
что я имел ранее, который я хочу создать с помощью этого плагина сейчас.
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Just a Name
Bundle-SymbolicName: just.a.name.broker;singleton:=true
Bundle-Version: 1.0.0
Require-Bundle: org.apache.activemq,
just.msg
Bundle-Activator: just.a.broker.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: javax.naming,
javax.xml,
javax.xml.parsers,
org.apache.log4j.xml,
org.osgi.framework
Bundle-ClassPath: .
Export-Package: just.a.broker
Итак, чтобы иметь такой манифест, как мой .bnd
файл похож? Или лучше включить свойства в плагин, чем передавать .bnd
файл?
1 ответ
Ваш файл.bnd может выглядеть так:
Bundle-Activator: just.a.broker.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Require-Bundle: org.apache.activemq,\
just.msg
Import-Package: *,\
javax.naming,\
javax.xml,\
javax.xml.parsers,\
org.apache.log4j.xml,\
org.osgi.framework
Bundle-ClassPath: .
Export-Package: just.a.broker
надеюсь это поможет.