Eclipse Maven 项目摆脱了 wb 资源警告

问题描述 投票:0回答:5

我的 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>

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

java eclipse maven m2e m2e-wtp
5个回答
3
投票

这就是我所做的,以摆脱这种多余的警告;

Window->Preferences->Validation.

现在在这里寻找

Project Structure Validation
,取消选中两者(手动和构建),警告将不再打扰。

在我的基于 Gradle 的 Spring Boot 项目中,有类似的资源目录导致问题,但现在不再出现了。

希望这对其他人有帮助。


0
投票

如果您想停用警告,可以转到“项目结构验证器”,然后“...”,然后删除“Facet:动态 Web 模块 - jst.web”。


0
投票

这很奇怪。我在 luna 中使用过 Maven Web 项目,从未遇到过此类错误。

你的 pom 有什么特别的吗?请记住 Maven 的哲学是约定优于配置。可以省去很多问题。

当 Eclipse 对某些 Maven 项目疯狂时,我会执行以下操作:

  1. 删除项目,但不删除内容。
  2. 从命令提示符或文件资源管理器中,转到项目根目录并删除所有 Eclipse 特定的文件和目录,例如 .project、.classpath、.apt_ generated...以及输出目录,例如 target。一般来说,只保留 pom.xml 和 src/ 。
  3. 从 Eclipse 导入现有的 Maven 项目并选择您的项目 pom。
  4. 让 Eclipse 从 pom 自动配置项目,并在需要时“更新 Maven 项目”。
  5. 不要直接通过 Eclipse 项目首选项修改项目配置。总是修改pom并且只是“更新maven项目”。

按照以下步骤操作,看看问题是否仍然存在。


0
投票

要在 2024 年解决此验证问题,请执行以下操作:

Window -> Preferences -> Validation

向下滚动约 2/3 并找到

Project Structure Validator
,单击
...
,在
Inlude Group
下找到
Facet: EAR - jst.ear
,然后单击
Remove
Ok
Apply & Close
,然后重建项目。


-1
投票

org.eclipse.wst.common.component 的内容对于我在 Luna 中的 Maven 项目来说看起来很典型 - 我没有看到这些警告,但我禁用了所有验证器。

转到“首选项”、“验证”和“全部暂停”。您可以找出哪个验证器正在生成消息并禁用该验证器。

© www.soinside.com 2019 - 2024. All rights reserved.