2010-12-07 6 views
1

У меня есть проект с выпуском пакета OSGI с использованием модуля maven-bundle-plugin. Конфигурация выглядит следующим образом:Проблема с maven-bundle-plugin (OSGI)

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <version>2.1.0</version> 
    <extensions>true</extensions> 
    <inherited>true</inherited> 
    <configuration> 
     <instructions> 
      <Export-Package>${bubble.osgi.exports}</Export-Package> 
      <Import-Package>${bubble.osgi.imports}</Import-Package> 
      <Embed-Dependency>${bubble.osgi.embed.dependencies}</Embed-Dependency> 

      <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy> 
     </instructions> 
     <versions> 
      <bubble.osgi.version.clean>${project.version}</bubble.osgi.version.clean> 
     </versions> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>cleanVersions</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Результат проект является одной банкой файла со всеми OSGi вещами, внедренные зависимости и т.д. включено. Я бы предпочел бы иметь 2 баночки в качестве результата: один с включенным osgi и один без него, поскольку встроенные зависимости вызывают проблемы при использовании его как простой банки.

Есть ли другой способ, кроме использования плагина сборки maven для этого?

ответ

2

Вы можете перемещать конфигурацию Maven-плагин пачки в отдельный профиль и использовать что-то вроде

пакета МВНА -Posgi или по умолчанию. Но на сборку будет только один артефакт.

2

Я бы порекомендовал использовать 2 разных файла pom.xml (в проекте), которые выдадут 2 разных артефакта.

по умолчанию pom.xml должна создавать обычную библиотеку как Foo: бар: 1.0.0

Другой pom-osgi.xml должен генерировать библиотеку OSGi как Фур: бар-OSGi: 1.0.0

К построить библиотеку с другим использованием помпы

mvn -f pom-osgi.xml install 
Смежные вопросы