1

我正在使用 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 之前

谢谢你,对不起我的英语=)

4

1 回答 1

1

_wab 指令告诉 bundle plugin (bnd) 你想让你的类路径结构像一个 WAR 文件,即WEB-INF/classes后跟WEB-INF/lib/*.jar.

因此,如果您想使用“。” 作为您的捆绑类路径,然后只需删除 _wab 指令。

但是,如果您这样做,请注意,根据 J2EE 标准,您的捆绑软件将不再是有效的 WAR 文件。因此,尽管它可以很好地部署到 OSGi 框架中,但它不会部署到传统的 J2EE 服务器或像 Tomcat 这样的 Web 容器中。如果您已经将捆绑包的内部与 OSGi API 等耦合,这可能并不重要BundleContext

于 2013-11-09T22:24:27.710 回答