Eclipse Maven项目如何消除wb-resource警告

32

我的Eclipse Luna中的Maven项目给了我这两个警告:

破坏单根规则:一个Web项目或EAR项目只允许有一个具有“/”部署路径的<ContextRoot>元素

以及

破坏单根规则:Web项目的输出文件夹必须是 /WEB-INF/classes configurations-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="..."/> 条目来避免。我也想知道如何避免第二个警告... - bobbel
第二个问题“Web项目的输出文件夹必须是/WEB-INF/classes”很难解决。我还在寻找解决方法,但我可以告诉你哪些方法是行不通的:
  • 从org.eclipse.wst.common.component中删除<property name="java-output-path" ...>(因为我已经读到它不再使用)
  • 在Eclipse中更改Web应用程序项目的输出文件夹(Java Build Path --> Source tab)为web-app-name/WEB-INF/classes
- PMorganCA
尝试使用它来停用警告http://stackoverflow.com/a/13722424/5286204 - Rafael Fonseca
我在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"/>。我将它们删除后,第二个警告也消失了。 - Gabriel
你是怎么得到这个的?pom.xml看起来像什么? - Thorbjørn Ravn Andersen
4个回答

3

这是我采取的方法来消除这种多余的警告:

Window->Preferences->Validation.

现在,在这里找到项目结构验证(Project Structure Validation),将(Manual和Build)两个勾选框都取消选中,警告信息就不会再打扰你了。
在我的基于Gradle的Spring Boot项目中,有类似的资源目录会导致问题,但现在已经没有了。
希望这对其他人有所帮助。

对我有用!! - Evandro Pomatti
@BonanzaOne 很高兴能帮忙 :) - mfaisalhyder

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
如果您想要停用警告,可以前往“项目结构验证器”,然后找到“...”,并移除“Facet: Dynamic Web Module - jst.web”。


-1

org.eclipse.wst.common.component的内容看起来与我在Luna中使用的Maven项目很相似 - 我没有看到那些警告,但我已经禁用了所有验证器。

前往首选项,验证,然后暂停所有。您可以找出哪个验证器产生了该消息,并仅禁用该验证器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接