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>

如何禁用此验证以摆脱烦人的警告?

【问题讨论】:

第一个可以阻止的,如果你只使用你的&lt;wb-resource deploy-path="/" source-path="..."/&gt; 条目之一。如何防止第二次警告,我也想知道…… 很难找到第二个output folder for a web project must be /WEB-INF/classes 的修复程序。我还在寻找,但我可以告诉你什么 没有 起作用: - 从 org.eclipse.wst.common.component 中删除 &lt;property name="java-output-path" ...&gt;(因为我已经读过它不再使用) - 在 Eclipse 中,将 Web 应用程序项目的 Output 文件夹(Java Build Path --> Source 选项卡)更改为 web-app-name/WEB-INF/classes 尝试停用警告***.com/a/13722424/5286204 我在 org.eclipse.wst.common.component 中有两个条目:&lt;wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/&gt;&lt;wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/&gt;。我删除了它们并摆脱了第二个警告 你是怎么得到这个结果的? 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 警告的主要内容,如果未能解决你的问题,请参考以下文章

eclipse再倒入maven项目时报错

svn导出一个maven项目到eclipse中后,不显示maven项目标志

eclipse导入maven项目,不能导入maven依赖,Maven Dependencies栏没有出现

eclipse创建maven项目报错!帮忙解决!

eclipse怎么自动检测maven项目需要的jar包

maven的项目怎么导入到eclipse中?