0

ディレクトリに Jar を配置する代わりに.class、依存関係の jar からすべてのファイルを WARディレクトリに含めたいと考えています。classes/lib/

私は持っている :

my-webapp/
  ...
  WEB-INF/
    lib/
      mylib-1.0-SNAPSHOT.jar

をお願いします :

my-webapp/
  ...
  WEB-INF/
    classes/
      mylib-1.0-SNAPSHOT (all **.class**)

maven-dependency-pluginも表示されますが、jar がローカルまたはリモートのリポジトリにインストールされている必要があります。しかしmylib-1.0-SNAPSHOT.jar、私のWARの直前にコンパイルされ、私が呼び出すとmvn package、失敗します!

では、jar 依存関係を war クラスに展開する方法は? (maven-shade-pluginジャーのように)

4

1 に答える 1

0

これをコメントに書きたかったのですが、テキストが長すぎます。

申し訳ありませんが、あなたの主張がわかりません。クラスを共有する複数の Web アプリケーションがあるため、これらの共通クラスを JAR にパッケージ化し、jar を配布してコードの重複を回避できるようになりました。それは大丈夫です。この時点で、Web アプリケーションの場合、jar の一部として /WEB-INF/classes または /WEB-INF/lib/ にクラスを持つことに違いはなく、Web アプリケーションは両方のケースでクラスを使用できます。

Maven では、n プロジェクトが必要です。共通の jar 用に 1 つ、次に、持っている各 webapp 用に 1 つ (共通の jar は依存関係です)。共通クラスが変更されている場合は、Web アプリケーションの 1 つの WAR をビルドする前に、最初に jar: を (共通リポジトリに) インストールする必要がありますmvn install。jar がインストールされたら、WAR をビルドできます。mvn war:war

于 2012-05-01T14:29:32.130 に答える