我正在使用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
问题是在Bundle-ClassPath中,插件自动添加“WEB-INF / classes”。
如何防止它产生这个?
即使我将配置更改为 。 它产生了这个: Bundle-ClassPath:WEB-INF / classes,。
我想拥有。在WEB-INF / classes之前
谢谢你&amp;抱歉我的英文=)
答案 0 :(得分:1)
_wab指令告诉bundle plugin(bnd)你希望你的类路径结构像WAR文件,即WEB-INF/classes
后跟WEB-INF/lib/*.jar
。
因此,如果你想使用“。”作为您的bundle类路径,然后删除_wab指令。
但是,如果这样做,请注意根据J2EE标准,您的捆绑包将不再是有效的WAR文件。因此,虽然它可以很好地部署到OSGi框架中,但它不会部署到传统的J2EE服务器或像Tomcat这样的Web容器中。如果您已将捆绑包的内部耦合到OSGi API(例如BundleContext
等),则这可能并不重要。