Eclipse无法识别src / main / webapp目录

我使用m2eclipse在Eclipse中导入Maven Java项目。

它无法将src/main/webapp识别为源目录。

以图形方式在包资源管理器中(或者当我在项目属性中查看Java-Build-Path时),
这个目录不在sources文件夹列表中(当src/main/javasrc/main/resources时)。

要访问它,我必须直接查看src /目录,并开始展开…不是很方便!

但是,如果我运行maven install ,资源将被复制到正确的目录中。
(例如: src/main/webapp/index.jsptarget/mywar/index.jsp

问题

  1. 这是正确的行为吗? (我以为它可以被视为其他资源…)
  2. 我能解决吗?
  3. 我想知道这种情况是否有其他缺点,我现在不会意识到这一点?

  1. 这是正确的行为吗? (我以为它可以被视为其他资源…)
  2. 我能解决吗?
  3. 我想知道这种情况是否有其他缺点,我现在不会意识到这一点?
  1. 是的,对我来说这是正确的行为。
  2. 将src / main / webapp作为源文件夹并不真正有意义,它不包含可编译的源文件。
  3. 我不知道。 我想这取决于你的期望:)

也就是说,m2eclipse做了一个贡献,允许使用特定的“Web资源”标签使src/main/webapp在顶层可用,如下所示:

替代文字

这可能是您关注的解决方案(不方便折叠)。

就maven而言, src/main/webapp不是源文件夹,因为它的内容没有被编译/复制到target/classes ,所以从m2eclipse的角度来看,这是正确的行为。 是否有特殊原因需要将src / main / webapp标记为Eclipse源文件夹?

而不是将/ src / main / webapp添加为java构建路径中的源文件夹,而是将其添加为要包含在部署程序集中的文件夹:

MyProject – > properties – > Deployment Assembly:添加“/ src / main / webapp”部署到“/”

就我而言,Eclipse无法将src/main/webapp识别为Web Resources文件夹。 我通过以下方式解决了

  1. 删除项目
  2. 重启eclipse
  3. 从SVN获取Maven项目的最新更新。

那你只需要将src / main / webapp标记为Eclipse src文件夹:

右键单击webapp文件夹 – >构建路径 – >用作源文件夹

不要认为你可以在没有任何丑陋的黑客的情况下轻松改变这种行为,src标记只是Eclipse特定的东西,用于配置其类路径等。

一种解决方案是利用m2e支持构建帮助器maven插件,并将src / main / webapp声明为additioanl资源路径。 这也使eclipse将节省的资源保存到构建目标文件夹结构中。

    org.codehaus.mojo build-helper-maven-plugin 3.0.0   add-resource generate-resources  add-resource     src/main/webapp ${project.build.directory}/${project.build.finalName}       

我能想出一个理由。

我正在使用Maven在Eclipse中开发一个GWT项目。 在我的配置中,src / main / webapp目录包含HTML和CSS文件,我必须将其作为开发工作的一部分,即使它们不是“可编译”文件。

能够直接到达他们而不是潜入src /文件夹是一个加号。 并在POM中定义它以便以这种方式设置意味着每次运行eclipse时都不必手动添加文件夹:eclipse。

对内斯特来说,不要开个玩笑。 它是一个端到端的开发环境,而不仅仅是一个编译器。 它旨在作为所有源工件的接口,这些工件有助于从JSP构建构建(如POM文件)。 如果这些不可编译,为什么eclipse甚至会烦扰XML和JSP编辑器呢? – 顺便说一句,这是非常有用的。

eclipse的maven插件(反之亦然)非常棒,因为它构建了.classpath,.project和其他配置,以便立即开始使用eclipse中的maven项目。 但是,每次生成eclipse配置(即mvn eclipse:eclipse)时,都必须手动添加不支持的目录。 这是一个很大的麻烦。

这些插件忽略了从IDE中轻松添加可查看的新源文件夹的能力这一事实对我来说是一个谜。 一个maven / eclipse插件项目页面甚至引用了解决方法,通过切换项目类型和欺骗插件使这些源暂时可用 – 当然,您需要立即更改它或破坏构建。

他们为什么不创建独立控制.classpath中源声明的能力?

我找到了一个完全不同的原因,我遇到了同样的问题 – 我不会在包资源管理器中看到src / main / webapp。

原来它与POM或Eclipse(使用SpringSource Suite 3.5.0)无关,可以加载maven项目。

问题是我的src / main / webapp / Scripts /文件夹里面有.git和.gitignore文件。 我怀疑可能是Eclipse无法处理以“。”开头的文件名。 在webapp文件夹中。 我在多个项目中测试了这个理论,到目前为止它似乎已经成功。

我希望这有帮助。