target/m2e-wtp/web-resources
Eclipse で Maven を使用して webapp プロジェクトを作成したところ、"Deployment Assembly" 構成カードにフォルダーという名前のソースがあることがわかりました。このソースは何を表していますか? 残しておくべきか、削除すべきか。
1 に答える
まず、このエントリがあるということは、Eclipse がスムーズに動作していることを意味します。M2Eclipse とm2e-wtpが正しくインストールされています。
M2Eclipse は、Maven を Eclipse に統合するプロジェクトです。プロジェクトを Eclipse 内 (およびその他多数) で直接ビルドする機能を提供します。m2e-wtp は、Eclipse Web ツール プロジェクトとの統合に重点を置いた M2E のサブセットであるため、JavaEE プロジェクトと組み合わせて使用されます。
「統合」とは、すべてがスムーズに機能するように、舞台裏で多くの魔法が起こっていることを意味します。m2e-wtp のこれらの魔法の要素の 1 つは、target/m2e-wtp-web-resources
Eclipse 自体の内部で Web アプリケーションをデプロイするときに使用されるフォルダーです。ドキュメントからの引用:
target/m2e-wtp/web-resources/
アプリケーションサーバーにデプロイする必要がある、自動生成されたリソースを含むフォルダーです。これらの生成されたリソースは次のとおりです。
pom.properties
MANIFEST.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
、通常の war ソース ディレクトリの前に定義されていることがわかります。<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 プロジェクトを更新したときに再作成されます。