2013-11-09 146 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 

的問題是,在捆綁-類路徑,插件全自動添加「WEB-INF /類」。

我該如何防止它產生?

即使我將配置更改爲 。 它生成這個: Bundle-ClassPath:WEB-INF/classes ,.

我想擁有。 WEB-INF /班前

謝謝&對不起我的英語=)

回答

1

的_wab指令告訴你希望你的類路徑結構像一個WAR文件捆綁插件(BND),即具有WEB-INF/classes其次WEB-INF/lib/*.jar

因此,如果你想使用「。」作爲你的bundle classpath,然後刪除_wab指令。

但是,如果您這樣做,請注意,根據J2EE標準,您的包不再是有效的WAR文件。因此,雖然它可以很好地部署到OSGi框架中,但它不會部署到像Tomcat這樣的傳統J2EE服務器或Web容器中。如果您已將捆綁的內部程序與OSGi API(例如BundleContext等)相耦合,則這可能並不重要。