Eclipse Maven 项目摆脱 wb-resource 警告
Posted
技术标签:
【中文标题】Eclipse Maven 项目摆脱 wb-resource 警告【英文标题】:Eclipse Maven Projects get rid of wb-resource warnings 【发布时间】:2014-12-29 05:56:32 【问题描述】:我在 Eclipse Luna 中的 maven 项目给了我这两个警告:
单根规则失效:Web 项目或 EAR 项目只允许一个部署路径为“/”的元素
和
单根规则失效:Web 项目的输出文件夹必须是 /WEB-INF/classesconfigurations-web
这是因为 maven 插件在 org.eclipse.wst.common.component 中使用以下 wb-resources 设置项目配置
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="sample-web">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<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="/WEB-INF/classes" source-path="/.apt_generated"/>
<property name="context-root" value="sample"/>
<property name="java-output-path" value="/sample-web/target/classes"/>
</wb-module>
</project-modules>
如何禁用此验证以摆脱烦人的警告?
【问题讨论】:
第一个可以阻止的,如果你只使用你的<wb-resource deploy-path="/" source-path="..."/>
条目之一。如何防止第二次警告,我也想知道……
很难找到第二个output folder for a web project must be /WEB-INF/classes
的修复程序。我还在寻找,但我可以告诉你什么 没有 起作用: - 从 org.eclipse.wst.common.component 中删除 <property name="java-output-path" ...>
(因为我已经读过它不再使用) - 在 Eclipse 中,将 Web 应用程序项目的 Output 文件夹(Java Build Path --> Source 选项卡)更改为 web-app-name/WEB-INF/classes
尝试停用警告***.com/a/13722424/5286204
我在 org.eclipse.wst.common.component 中有两个条目:<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
和 <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
。我删除了它们并摆脱了第二个警告
你是怎么得到这个结果的? pom.xml 长什么样子?
【参考方案1】:
这很奇怪。我在 luna 中使用过 maven web 项目,从未出现过此类错误。
你的 pom 有什么特别之处吗?记住 Maven 的哲学是约定优于配置。它省去了很多问题。
当 eclipse 为某个 maven 项目疯狂时,我会执行以下操作:
-
删除项目,但不删除内容。
从命令提示符或文件资源管理器中,转到项目根目录并删除所有 Eclipse 特定的文件和目录,例如 .project、.classpath、.apt_generated... 以及输出目录,例如 target。一般只保留 pom.xml 和 src/。
从 eclipse 导入现有的 maven 项目并选择你的项目 pom。
如果需要,让 eclipse 从 pom 中自动配置项目并“更新 maven 项目”。
不要直接通过 Eclipse 项目首选项来触摸项目配置。始终修改 pom 并仅“更新 maven 项目”。
按照这些步骤操作,看看问题是否仍然存在。
【讨论】:
【参考方案2】:这就是我为摆脱这种多余的警告所做的;
Window->Preferences->Validation.
现在在这里寻找 Project Structure Validation
,取消选中(手动和构建),警告将不再出现。
在我基于 Gradle 的 Spring Boot 项目中,有类似的资源目录会导致问题,但现在不会了。
希望这对其他人有所帮助。
【讨论】:
为我工作!! @BonanzaOne 很高兴为您提供帮助 :)【参考方案3】:如果您想停用警告,您可以转到“项目结构验证器”,然后转到“...”,然后删除“Facet: Dynamic Web Module - jst.web”。
【讨论】:
【参考方案4】:org.eclipse.wst.common.component 的内容对于我在 Luna 中的 Maven 项目来说看起来很典型 - 我没有看到这些警告,但我禁用了所有验证器。
转到首选项、验证和全部暂停。您可以确定哪个验证器正在生成消息并仅禁用该验证器。
【讨论】:
以上是关于Eclipse Maven 项目摆脱 wb-resource 警告的主要内容,如果未能解决你的问题,请参考以下文章
svn导出一个maven项目到eclipse中后,不显示maven项目标志