1. ホーム
  2. java

[解決済み] Deployment Assemblyのtarget/m2e-wtp/web-resourcesとは何ですか?

2022-02-15 17:09:09

質問

EclipseのMavenを使用してWebアプリのプロジェクトを作成したところ、ソースに target/m2e-wtp/web-resources フォルダの中にあります。このソースは何を意味するのでしょうか?残しておくべきでしょうか、それとも削除すべきでしょうか?

解決方法は?

まず、このエントリーがあるということは、お使いのEclipseが正常に動作していることを意味します。M2Eclipseをお持ちで m2e-wtp が正しくインストールされていることを確認します。

M2Eclipseは、MavenをEclipseに統合するプロジェクトです。m2e-wtpはM2Eのサブセットで、Eclipse Web Tools Projectと統合することにフォーカスしているので、JavaEEプロジェクトと組み合わせて使います。

私が「統合する」と言ったのは、すべてがスムーズに動くように、舞台裏でたくさんのマジックが起こっているということです。m2e-wtpの魔法の材料の1つは、以下の通りです。 target/m2e-wtp-web-resources このフォルダは、WebアプリケーションをEclipse内にデプロイするときに使用されます。引用元 ドキュメント :

target/m2e-wtp/web-resources/ は、アプリケーションサーバーに配置する必要がある、自動的に生成されたリソースを含むフォルダーです。これらの生成されたリソースは、:

  • pom.propertiesMANIFEST.MF mavenarchiver プラグインによって生成された
  • で定義されたリソースは <webResources> セクションの maven-war-plugin のコンフィギュレーション、またはフィルタリングされた web.xml

target/m2e-wtp/web-resources/ が派生しています。Eclipseの用語では、このファイルに含まれるファイルを手動で編集しようとすると、警告が表示されることを意味します。

を見ると <project>/.settings/org.eclipse.wst.common.component ファイルには /target/m2e-wtp/web-resources は、通常の戦争のソースディレクトリの前に定義されています。

<project-modules id="moduleCoreId" project-version="1.5.0">
  <wb-module deploy-name="webapp">
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
    <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
    <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
    <property name="context-root" value="webapp"/>
    <property name="java-output-path" value="/webapp/target/classes"/>
  </wb-module>
</project-modules>

この順序の根拠は、2つの異なるソースフォルダからの2つのファイルが衝突した場合、WTPは最初に見つけたものをデプロイするためです。ですから、もしあなたが web.xml の下にある src/main/webapp/WEB-INF の場合、フィルタリングされたバージョンをサーバーにデプロイすることになります。 target/m2e-wtp/web-resources/WEB-INF/web.xml . もし、何らかの理由で target/m2e-wtp/web-resources/ ということです。

そのフォルダがあることで、セットアップに問題がないことがわかります。間違ってそのエントリーを削除しても、次にEclipseでMavenプロジェクトを更新すれば、再作成されます。