target/m2e-wtp/web-resources
我在 Eclipse 中使用 Maven 创建了一个 webapp 项目,我发现“部署程序集”配置卡中有一个名为文件夹的源。这个来源代表什么?我应该保留它还是删除它?
1 回答
首先,您拥有此条目这一事实意味着您的 Eclipse 工作顺利。您已正确安装 M2Eclipse 和m2e-wtp。
M2Eclipse 是一个将 Maven 集成到 Eclipse 中的项目。它提供了直接在 Eclipse 中构建项目的能力(以及许多其他东西)。m2e-wtp 是 M2E 的一个子集,专注于与 Eclipse Web Tools Project 集成,因此它与 JavaEE 项目结合使用。
当我说“集成”时,它真的意味着在幕后发生了很多神奇的事情,以使一切顺利进行。m2e-wtp 的神奇成分之一就是该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
在常规战争源目录之前定义:<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>
此命令背后的基本原理是,如果来自两个不同源文件夹的两个文件发生冲突,WTP 将部署它找到的第一个文件。因此,如果您
web.xml
在 下过滤您的坐姿src/main/webapp/WEB-INF
,您将希望将过滤后的版本部署在服务器上,即target/m2e-wtp/web-resources/WEB-INF/web.xml
. 如果出于某种原因,您想禁用target/m2e-wtp/web-resources/
,那么知道您可以。
因此,不要害怕,该文件夹的存在实际上表明您的设置一切正常。如果您错误地删除了该条目,它将在您下次在 Eclipse 中更新 Maven 项目时重新创建。