我使用 m2eclipse 在Eclipse中导入Maven Java项目。
无法将src/main/webapp
识别为源目录。
在包浏览器中以图形方式(或当我查看项目属性中的 Java-Build-Path 时),
此目录不在sources文件夹列表中(src/main/java
或src/main/resources
可以)。
要访问它,我必须直接查看src /目录,然后开始展开... 不太方便!
但是,如果我运行maven install
,资源将被复制到正确的目录中
(例如:src/main/webapp/index.jsp
到target/mywar/index.jsp
)
答案 0 :(得分:8)
- 这是正确的行为吗? (我以为它可以被视为其他资源......)
- 我可以修理吗?
- 我想知道这种情况是否存在其他缺点,我现在还不知道?
醇>
也就是说,m2eclipse做了一个贡献,允许在顶层使用特定的“Web资源”标签使src/main/webapp
可用,如下所示:
这可能是您关注的解决方案(不方便折叠)。
答案 1 :(得分:5)
就maven而言,src/main/webapp
不是源文件夹,因为它的内容未编译/复制到target/classes
,所以从m2eclipse的角度来看,这是正确的行为。是否有特殊原因需要将src / main / webapp标记为Eclipse源文件夹?
答案 2 :(得分:5)
不是将/ src / main / webapp添加为java构建路径中的源文件夹,而是将其添加为要包含在部署程序集中的文件夹:
MyProject - >属性 - >部署程序集:添加“/ src / main / webapp”部署到“/”
答案 3 :(得分:2)
嗯,你只需要将src / main / webapp标记为Eclipse src文件夹:
右键单击webapp文件夹 - >构建路径 - >用作源文件夹
不要认为你可以在没有任何丑陋黑客的情况下轻松改变这种行为,src标记只是Eclipse特定的东西,它用来配置它的类路径等。
答案 4 :(得分:2)
就我而言,Eclipse无法将src/main/webapp
识别为Web Resources文件夹。我通过以下方式解决了这个问题:
答案 5 :(得分:1)
一种解决方案是利用m2e支持构建帮助器maven插件,并将src / main / webapp声明为additioanl资源路径。这也使eclipse将节省的资源保存到构建目标文件夹结构中。
<!-- help eclipse identify the webapp folder as a resource folder: -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/webapp</directory>
<targetPath>${project.build.directory}/${project.build.finalName}</targetPath>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
答案 6 :(得分:1)
许多答案声称将src/main/webapp
作为源文件夹是没有意义的,因为JSP文件是由容器编译的,而不是在构建周期内进行编译的。
但是,当您进行安全测试时,有意义:
一些安全扫描工具提供了可以集成到IDE中的插件,以便开发团队可以本地扫描其代码并修复其计算机上的基本漏洞,从而减少了可以进行更高级测试的安全团队的工作量。
Eclipse排除了该特定目录这一事实是一个巨大的问题:这样做,安全性工具将默认不将webapp/
目录包括在扫描过程中,这会导致误报。 strong>(该工具未报告的实际漏洞)。然后,这种行为使开发团队认为从安全角度来看,其JSP页面(例如)是安全的。
如果安全测试团队不注意开发团队进行的扫描(有时我们甚至无法检查哪些扫描是在本地执行的),则该产品很有可能会发布带有漏洞的代码, webapp/
文件夹。
因此,从安全的角度来看,这种行为是没有意义的,人们声称确实存在某些缺陷。
无论如何,我通过在src/main/webapp/
-> package explorer
-> {{1}中单击鼠标右键,将build path
文件夹添加到构建路径来解决了这个问题。 }
答案 7 :(得分:0)
我能想出一个理由。
我正在使用Maven在Eclipse中开发一个GWT项目。在我的配置中,src / main / webapp目录包含HTML和CSS文件,我必须将其作为开发工作的一部分,即使它们不是“可编译”文件。
能够直接到达他们,而不是潜入src /文件夹是一个加号。并在POM中定义它以便它以这种方式设置意味着每次运行eclipse时都不必手动添加文件夹:eclipse。
答案 8 :(得分:0)
至于内斯特的观点,不要开玩笑。它是一个端到端的开发环境,而不仅仅是一个编译器。它旨在作为所有源工件的接口,这些工件有助于从JSP构建构建配置(如POM文件)。如果这些不可编译,为什么eclipse甚至会烦扰XML和JSP编辑器呢? - 顺便说一下,这是非常有用的。
eclipse的maven插件(反之亦然)非常棒,因为它构建了.classpath,.project和其他配置,以便立即开始在eclipse中使用maven项目。但是,每次生成eclipse配置(即mvn eclipse:eclipse)时,必须手动添加不支持的目录。这是一个很大的麻烦。
这些插件忽略了在IDE中轻松添加可查看的新源文件夹的能力这一事实对我来说是一个谜。一个maven / eclipse插件项目页面甚至引用了解决方法,通过切换项目类型和欺骗插件来暂时使这些源可用 - 当然,您需要立即更改它或破坏构建。
为什么它们不能创建独立控制.classpath ???
中的源声明的能力答案 9 :(得分:0)
我找到了一个完全不同的原因,我遇到了同样的问题 - 我不会在包资源管理器中看到src / main / webapp。
原来它与POM或Eclipse(使用SpringSource Suite 3.5.0)无关,可以加载maven项目。
问题是我的src / main / webapp / Scripts /文件夹里面有.git和.gitignore文件。我怀疑可能是Eclipse无法处理以&#34;开头的文件名。&#34;在webapp文件夹中。我在多个项目中测试了这个理论,到目前为止它似乎已经成功。
我希望这会有所帮助。