Как использовать директивы bnd из maven-bundle-plugin?
Как я могу использовать инструкцию директивы bnd из maven-bundle-plugin? Директивы bnd начинаются с символа '-', и это недопустимый тег xml:
<-foo>bar</-foo>
Я проверил официальную страницу maven-bundle-plugin, и они сказали, что она также должна начинаться с символа '-':
Директивы - любая инструкция, начинающаяся с символа "-", считается директивой, которая информирует BND о выполнении специальной обработки и не копируется в манифест.
Кажется, что описание цели пакета также не содержит этой информации. выполнить некоторую специальную обработку и не копируется в манифест.
2 ответа
Существует альтернативный способ определения инструкций bnd с меньшим количеством беспорядка xml:
Настройте плагин так:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<_include>-osgi.bnd</_include>
</instructions>
</configuration>
</plugin>
и предоставьте файл (здесь: osgi.bnd) с инструкциями, например
Import-Package: !javax.servlet,\
!org.apache.avalon.framework.logger,\
org.apache.commons.collections;version="[1.0,2)",\
org.apache.commons.collections.comparators;version="[1.0,2)",\
org.apache.commons.collections.keyvalue;version="[1.0,2)",\
org.apache.commons.collections.list;version="[1.0,2)",\
org.apache.commons.collections.set;version="[1.0,2)",\
!org.apache.log,\
!org.apache.log4j,\
*
Export-Package: *
Примечание: в имени тега _include перед именем файла стоит знак минус!
Пример из реальной жизни можно найти здесь: