2013-11-09 3 views
1

Я создаю файл манифеста, используя плагин maven bundle. Это моя конфигурация:Конфигурация плагина maven bundle

 <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <extensions>true</extensions> 
      <configuration> 
       <instructions> 
        <_wab>src/main/webapp</_wab> 
        <Import-Package>org.osgi.framework,javax.servlet, javax.servlet.http</Import-Package> 
        <Export-Package></Export-Package> 
        <Bundle-Version>2</Bundle-Version> 
        <Bundle-SymbolicName>fr.lyon1.Client</Bundle-SymbolicName> 
        <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath> 
        <Web-ContextPath>/client</Web-ContextPath> 
       </instructions> 
      </configuration> 
     </plugin> 

Это пример сгенерированного файла:

Manifest-Version: 1.0 
Bnd-LastModified: 1384018413590 
Build-Jdk: 1.7.0_45 
Built-By: houssem 
Bundle-ClassPath: WEB-INF/classes,.,WEB-INF/classes 
Bundle-ManifestVersion: 2 
Bundle-Name: client Maven Webapp 
Bundle-SymbolicName: fr.lyon1.Client 
Bundle-Version: 2 
Created-By: Apache Maven Bundle Plugin 
Import-Package: javax.servlet,javax.servlet.http,org.osgi.framework;vers 
ion="[1.5,2)" 
Tool: Bnd-2.1.0.20130426-122213 
Web-ContextPath: /client 

Проблема заключается в том, что в пачке ClassPath, плагин добавить автоматически «WEB-INF/классы».

Как я могу предотвратить его создание?

Даже если я изменю свою конфигурацию на . Он генерирует это: Bundle-ClassPath: WEB-INF/classes ,.

Я хочу иметь. Перед WEB-INF/классов

Спасибо & извините за мой английский =)

ответ

1

Инструкции _wab говорит расслоение плагина (BND), которые вы хотите, чтобы ваш путь к классам структурированы как файл WAR, то есть с WEB-INF/classes с последующим WEB-INF/lib/*.jar.

Поэтому, если вы хотите использовать "." как ваш пул classpath, тогда просто удалите инструкцию _wab.

Однако, если вы это сделаете, имейте в виду, что ваш комплект больше не будет действительным файлом WAR в соответствии со стандартами J2EE. Поэтому, несмотря на то, что он будет полностью внедрен в OSGi Framework, он не будет развертываться в традиционном J2EE-сервере или веб-контейнере, таком как Tomcat. Это может быть неважно, если вы уже связали внутреннюю часть пакета с API OSGi, например BundleContext и т. Д.

Смежные вопросы