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>

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

4

4 回答 4

3

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

Window->Preferences->Validation.

现在在这里寻找Project Structure Validation,取消选中(手动和构建),警告将不再打扰。

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

希望这对其他人有帮助。

于 2016-10-22T21:36:41.803 回答
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 项目”。

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

于 2016-12-28T22:31:43.090 回答
0

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

于 2016-08-21T17:30:23.310 回答
-1

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

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

于 2015-09-22T17:19:50.403 回答