2017-03-29 11 views
0

私は、他の2つのモジュールの依存関係である共通モジュールを持つマルチモジュールMavenプロジェクトを持っています。このモジュールの1つは、オーバーレイによって他のモジュールに統合された戦争を生成します。Eclipse IDEから複数のMavenモジュールをTomcatにデプロイする方法は?

最終戦争は問題なくMavenクリーンインストールコマンドによって生成されます。ターゲットの構造はすべてOKです。 しかし、Tomcat 8サーバーをサーバービュー(「Tomcatの制御インストールが必要」モード)にインストールしてプロジェクトを展開すると、悪夢です... WEB-INF/classes、共通モジュール(jar) WEB-INF/libに配備されていない場合、オーバーレイによるビルド時に統合する戦争はWEB-INF/libに表示されます。

Maven設定でTomcatプラグインを追加しなくてもクリーンなデプロイメントを実現する方法はありますか?

ネオンバージョンです。 展開アセンブリは、src/main/*(およびMavenの依存関係のみ)で構成されます。

target/xxxディレクトリに生成された最終アプリケーションをEclipseが配布しない理由を理解できません。

+0

お待ちください。大きな「戦争」には多くの「戦争」ファイルがありますか?たぶんこれが問題です。どちらかを 'war'モジュール性にするか、' jar'モジュール化します。しかし、両方のキメラではない... –

+0

ええ、私の選択。最終戦争で重複して戦争のモジュールがある古いプロジェクトを回復しました。この機能はMavenに存在し、Mavenでビルドしても問題ありません。私たちは、Eclipse(プロジェクトファセットなし、デプロイメントアセンブリなし)を使った別の古典的なプロジェット、同じpbで試しました。 Eclipseがプロジェクトを管理できないのは初めてではないだろう。それは退屈だ。なぜ彼は最終的なターゲットビルドを展開していないのですか? – MychaL

答えて

1

問題が見つかりました。

Eclipseはデプロイメントアセンブリを気にしません。 デプロイメントアセンブリとJavaビルドパスを混在させます。

mavenプロジェクトをインポートすると、プロジェクトの設定が不明な理由で悪い可能性があります。 Java Build Pathで宣言されているソースフォルダを確認し、各ソースフォルダの出力ディレクトリを確認してください。

src/test/resourcesの場合、デフォルト出力を設定します(target/test-classesではありません)。したがって、すべてのテストリソースはtarget/classesにコピーされました。 そして私はなぜ彼がこのディレクトリにTomcatを配備したのか分かりません。展開アセンブリ内

、それだけでこれらのディレクトリを設定します。

- src/main/java -> WEB-INF/classes 
    - src/main/webapp ->/
    - /target/m2e-wtp/web-resources ->/
    - Maven dependencies -> WEB-INF/lib 
    - link to others modules 

は今、すべて完璧に動作。

関連する問題