Задача
Распаковать в собираемый OSGI-бандл некоторые зависимости.
Решение
У maven-bundle-plugin есть инструкция "Embed-Dependency", однако она включает указанные зависимости не распаковывая, т.е. кладет jar-ник внутрь jar-ника. Поэтому приходится использовать комбинацию плагина maven-dependency-plugin и инструкцию "Include-Resource" плагина maven-bundle-plugin:
<plugin>В данном примере зависимости saaj-impl,stax-ex,stax-api,mimepul будут запакованы в OSGI-бандл, за исключением их директорий META-INF.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeArtifactIds>saaj-impl,stax-ex,stax-api,mimepull</includeArtifactIds>
<excludes>META-INF/**</excludes>
<outputDirectory>${project.build.directory}/depsToPackIntoBundle</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>**</Bundle-SymbolicName>
<Bundle-Name>***</Bundle-Name>
<Export-Package>***</Export-Package>
<Fragment-Host>***</Fragment-Host>
<Import-Package>***</Import-Package>
<Private-Package>***</Private-Package>
<Include-Resource>${project.build.directory}/depsToPackIntoBundle</Include-Resource>
</instructions>
</configuration>
</plugin>
Комментариев нет:
Отправить комментарий