web-dev-qa-db-ja.com

mavenを使用してJBoss AS 7のMANIFEST.MFでモジュールの依存関係をどのように生成しますか?

JBoss AS 7では、ASに含まれるライブラリに依存するWebアプリケーションは、これらの依存関係をMETA-INF/MANIFEST.MFで次のように宣言する必要があります。

Dependencies: <package-name>

例:

Dependencies: org.slf4j

(これはImport-Package:for OSGiに相当します。)詳細については、 古いバージョンからの移行クラスローディング および 暗黙のモジュールに関する記事を参照してください。デプロイメントの依存関係

プロジェクトはMavenでビルドされています。 ASに含まれるすべての依存関係は、スコープが '提供'で宣言されています。

今問題

Mavenでこの依存関係のリストを自動的に作成する簡単な方法はありますか?

他のすべてがすでにWARに含まれているため、スコープが 'provided'と宣言された依存関係のみを含める必要があります。

28
migu

これらの依存関係は、Mavenアーティファクトがマッピングされていない名前で宣言されます。おそらくgroupIdをjbossモジュール名と同期させることができますが、それが良いアイデアかどうかはわかりません。そして、私はまだ自動化されたソリューションを考えることができません。

ただし、質問で提供したソースの1つで説明されているように、手動で構成を管理できる場所があります。

   <build>
       ...
       <plugins>
         <plugin>
           <groupId>org.Apache.maven.plugins</groupId>
           <artifactId>maven-war-plugin</artifactId>
           <configuration>
              <archive>
                 <manifestEntries>
                    <Dependencies>org.slf4j</Dependencies>
                 </manifestEntries>  
              </archive>
           </configuration>
         </plugin>   
       </plugins>
    </build>

誰かが面倒を少なくするためのプラグインを考え出すことを願っています。

27
Mike Minicki

このコードは、すべてのコンパイル依存関係をMANIFEST.MFに自動的に追加します

<plugin>
   <groupId>org.Apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <version>2.4</version>
   <configuration>
      <archive>
         <manifest>
            <addClasspath>true</addClasspath>
         </manifest>
      </archive>
   </configuration>
</plugin>

詳細はこちら: http://maven.Apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html

1
Jérome Pieret