1

Maven バンドル プラグインを使用してマニフェスト ファイルを生成しています。これは私の構成です:

      <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/クラスの前

ありがとう&私の英語でごめんなさい=)

4

1 に答える 1

1

WEB-INF/classes_wab 命令は、バンドル プラグイン ( bnd ) に、クラスパスを WAR ファイルのような構造にすることを伝えますWEB-INF/lib/*.jar

したがって、「。」を使用する場合。バンドルのクラスパスとして _wab 命令を削除するだけです。

ただし、これを行うと、バンドルは J2EE 標準に従って有効な WAR ファイルではなくなることに注意してください。そのため、OSGi フレームワークには問題なくデプロイされますが、従来の J2EE サーバーや Tomcat のような Web コンテナーにはデプロイされません。BundleContextバンドルの内部をなどの OSGi API にすでに結合している場合、これは重要ではないかもしれません。

于 2013-11-09T22:24:27.710 に答える