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

     2023-02-27     286

关键词:

【中文标题】Eclipse 无法识别 src/main/webapp 目录【英文标题】:src/main/webapp directory not recognized by Eclipse 【发布时间】:2010-12-12 07:47:22 【问题描述】:

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

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

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

要访问它,我必须直接查看 src/ 目录,然后开始展开... 不太方便!

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

问题

    这是正确的行为吗? (我在想它可以被视为其他资源......) 我可以解决它吗? 我想知道这种情况是否还有其他我现在不知道的缺点?

【问题讨论】:

【参考方案1】:

许多答案声称将src/main/webapp 作为源文件夹是没有意义的,因为 JSP 文件是由容器编译的,而不是在构建周期中的 Maven。

但是,当您进行安全测试时,它确实有意义

一些安全扫描工具提供了可以集成到 IDE 中的插件,以便开发团队可以在本地扫描他们的代码并修复他们机器上的基本漏洞,从而减少安全团队的工作量,从而可以进行更高级的测试。

Eclipse 排除这个特定目录的事实是一个大问题:这样做,安全工具默认不会将webapp/ 目录包含到扫描过程中,这会导致漏报 (该工具未报告的实际漏洞)。然后,这种行为会导致开发团队认为他们的 JSP 页面(例如)从安全的角度来看是安全的。

如果安全测试团队不关注开发团队进行的扫描(有时我们甚至无法检查哪些扫描已在本地执行),则产品发布时更有可能存在代码中包含的漏洞webapp/ 文件夹。

因此,从安全的角度来看,这种行为是没有意义的,声称它确实如此的人漏掉了一些要点。

无论如何,我通过在package explorer 中单击右键将src/main/webapp/ 文件夹添加到构建路径中解决了这个问题 --> build path --> use as source folder

【讨论】:

【参考方案2】:

一种解决方案是利用 m2e 对 build helper maven 插件的支持,并将 src/main/webapp 声明为附加资源路径。这也使得 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>

【讨论】:

【参考方案3】:

我发现我面临同样问题的完全不同的原因 - 我不会在包资源管理器中看到 src/main/webapp。

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

问题是在我的 src/main/webapp/Scr​​ipts/ 文件夹中有 .git 和 .gitignore 文件。我怀疑可能是 Eclipse 无法处理以“.”开头的文件名。在 webapp 文件夹中。我在多个项目中测试了这个理论,到目前为止它似乎站稳脚跟。

我希望这会有所帮助。

【讨论】:

【参考方案4】:

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

MyProject -> 属性 -> 部署程序集:添加“/src/main/webapp”部署到“/”

【讨论】:

如果您没有Deployment Assembly 子菜单,请转到Project Facets 并添加Dynamic Web Module【参考方案5】:

在我的例子中,Eclipse 无法将 src/main/webapp 识别为 Web Resources 文件夹。我通过以下方式解决了它:

    删除项目 重启eclipse 从 SVN 获取 Maven 项目的全新更新。

【讨论】:

【参考方案6】:
    这是正确的行为吗? (我在想它可以被视为其他资源......) 我可以解决它吗? 我想知道这种情况是否还有其他我现在不知道的缺点?
    是的,对我来说这是正确的行为。 将 src/main/webapp 作为源文件夹实际上没有意义,它不包含可编译的源文件。 我不知道。我想这取决于你的期望:)

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

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

【讨论】:

+1 感谢您的贡献。我会检查这个“Web 资源”文件夹,因为我们使用的是 Ganymede。 如何让 eclipse 让 'Web Resources' 引用 'src/main/webapp' 目录? 链接docs.sonatype.org/download/attachments/1999028/…不可用 @pascal thivent,图片的链接好像坏了,你能更新一下吗?【参考方案7】:

就内斯特而言,别开玩笑了。它是一个端到端的开发环境,而不仅仅是一个编译器。它旨在作为所有源工件的接口,这些工件有助于从 JSP 构建配置,例如 POM 文件。如果 XML 和 JSP 编辑器不能编译,为什么 Eclipse 还要费心呢? --顺便说一句,超级有用。

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

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

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

【讨论】:

【参考方案8】:

我能想到一个原因。

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

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

【讨论】:

【参考方案9】:

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

【讨论】:

我认为 src/main/webapp 文件夹旨在包含用于示例的 jsp 文件。这就是为什么它必须被标记为源文件夹。 是的,但是 JSP(通常)在部署后由容器编译,而不是由构建系统编译。 我明白你的意思。关于你的最后一个问题,那也是我的第三个问题! :-)【参考方案10】:

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

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

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

【讨论】:

如果就这么简单,那我想知道为什么m2eclipse插件不这样做。这完全符合他对我的责任! 如果我手动执行此操作,那么在另一台机器上再次导入同一个项目时会出现问题... 你说得对,也许 m2eclipse 插件应该足够聪明,可以将 src 的所有子文件夹标记为 eclipse 源文件夹.. @Nick 也许不是所有的子文件夹...但是 m2eclipse 足够聪明,可以读取项目的“战争”性质,然后添加适当的构建器和 java 性质。所以了解这个标准目录 src/main/webapp 应该没有问题! 您不想这样做,没有理由将src/main/webapp 添加到源文件夹中。

Eclipse 无法识别 Gradle 依赖项

】Eclipse无法识别Gradle依赖项【英文标题】:EclipsenotrecognizingGradledependencies【发布时间】:2016-11-0509:41:50【问题描述】:我是Gradle新手,我正在尝试本教程https://spring.io/guides/gs/rest-service/我能够使用所需的依赖项编译jar并运行它。... 查看详情

无法让 Eclipse 识别我的插件

】无法让Eclipse识别我的插件【英文标题】:Can\'tgeteclipsetorecognizemyplugin【发布时间】:2011-12-0720:33:51【问题描述】:我通过清单中的“导出向导”导出了我的Eclipse插件,看起来一切顺利(没有错误)。它在zip文件的插件目录中... 查看详情

Eclipse 无法识别 Xperia E1

】Eclipse无法识别XperiaE1【英文标题】:XperiaE1notrecognizedbyEclipse【发布时间】:2015-02-1909:45:51【问题描述】:我似乎无法让eclipse将我的XperiaE1识别为ADB设备。问题是在eclipse的设备列表中检测到它,但它显示427ac413作为序列号并且目... 查看详情

Android Emulator 启动但 Eclipse 无法识别

】AndroidEmulator启动但Eclipse无法识别【英文标题】:AndroidEmulatorstartsbutEclipsedoesn\'trecognizeit【发布时间】:2011-07-2812:09:44【问题描述】:作为一般规则,一切正常,但有时Eclipse或我的Android模拟器决定成为一个混蛋并拒绝工作。我... 查看详情

Eclipse 无法识别 Java 项目;类路径问题

】Eclipse无法识别Java项目;类路径问题【英文标题】:JavaprojectsnotbeingrecognizedbyEclipse;classpathproblems【发布时间】:2012-07-1320:24:16【问题描述】:我是一个非常缺乏经验的程序员。我刚刚参加了为期一周的关于在Eclipse中进行Java编... 查看详情

Netbeans/Eclipse 无法识别 Java ME SDK

】Netbeans/Eclipse无法识别JavaMESDK【英文标题】:JavaMESDKnotrecognizedbyNetbeans/Eclipse【发布时间】:2017-04-1916:18:25【问题描述】:我目前正在尝试将JavaME平台用于一个项目。但是,我花了几天时间尝试将JavaMESDK与IDE集成。我已经下载/安... 查看详情

Eclipse CDT 编辑器无法识别 OpenGL 扩展

】EclipseCDT编辑器无法识别OpenGL扩展【英文标题】:EclipseCDTeditordoesn\'trecognizeOpenGLextensions【发布时间】:2012-05-1118:01:34【问题描述】:我在Eclipse中使用顶点数组对象和顶点缓冲区对象,但编辑器似乎无法识别函数声明。该程序编... 查看详情

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

】Eclipse无法识别src/main/webapp目录【英文标题】:src/main/webappdirectorynotrecognizedbyEclipse【发布时间】:2010-12-1207:47:22【问题描述】:我使用m2eclipse在Eclipse中导入MavenJava项目。它无法将src/main/webapp识别为源目录。在包资源管理器中以... 查看详情

eclipse C++ 中无法识别受保护的成员

】eclipseC++中无法识别受保护的成员【英文标题】:ProtectedmembernotrecognizedineclipseC++【发布时间】:2012-11-2311:26:19【问题描述】:我有以下类,我尝试访问基类的受保护成员,但在eclipse中出现错误“无法解析字段分解”。有人可以... 查看详情

Eclipse 无法识别我对 HTC 的渴望

】Eclipse无法识别我对HTC的渴望【英文标题】:EclipsewontrecognizemyHTCdesire【发布时间】:2013-03-1504:28:51【问题描述】:我正在尝试使用我的HTCDesire作为我的Android应用程序的测试手机,但Eclipse看不到它,现在如果我去设备管理器有... 查看详情

OpenOffice Eclipse 插件无法识别 OpenOffice SDK

】OpenOfficeEclipse插件无法识别OpenOfficeSDK【英文标题】:OpenOfficeEclipseplugindoesn\'trecognizeOpenOfficeSDK【发布时间】:2013-07-3120:27:43【问题描述】:我在Ubuntu中安装了OpenOffice4.0(应用程序和SDK),因为我想开发OOo插件。当我尝试使用Ecl... 查看详情

Eclipse Neon.2 无法识别 Android ADT

】EclipseNeon.2无法识别AndroidADT【英文标题】:AndroidADTisnotrecognizedinEclipseNeon.2【发布时间】:2017-07-0816:43:45【问题描述】:我已经为Eclipse下载了ADT插件。在创建新项目、首选项或“自定义透视图”时,我在任何地方都看不到Android... 查看详情

使用 MPI 时并行 Eclipse 无法识别处理器的真实数量

】使用MPI时并行Eclipse无法识别处理器的真实数量【英文标题】:paralleleclipsedoesnotrecognizetruenumberofprocessorswhenusingMPI【发布时间】:2021-05-1816:12:19【问题描述】:我有以下代码,当使用eclipse2020.12执行时,输出是这样的:“Hellofromr... 查看详情

Eclipse 无法识别使用 Maven 创建的 Java Web 项目

】Eclipse无法识别使用Maven创建的JavaWeb项目【英文标题】:AJavawebprojectcreatedwithMavenisnotrecognizedassuchbyEclipse【发布时间】:2011-01-1205:43:03【问题描述】:我用maven创建了一个web项目,如下所示:mvnarchetype:create-DgroupId=com.mycompany.app-Dar... 查看详情

Eclipse 无法识别 com.sun.net.httpserver.HttpServer 包

】Eclipse无法识别com.sun.net.httpserver.HttpServer包【英文标题】:Eclipsecantrecognizecom.sun.net.httpserver.HttpServerpackage【发布时间】:2012-10-2018:44:11【问题描述】:我有一个家庭作业,用java创建一个http服务器,一个简单的从头开始。在搜索... 查看详情

Eclipse CDT 无法识别 Linux CLOCK_PROCESS_CPUTIME_ID

】EclipseCDT无法识别LinuxCLOCK_PROCESS_CPUTIME_ID【英文标题】:LinuxCLOCK_PROCESS_CPUTIME_IDnotbeingrecognizedinEclipseCDT【发布时间】:2013-06-2213:39:34【问题描述】:Eclipse无法识别以下代码中的“CLOCK_PROCESS_CPUTIME_ID”。操作系统是Ubuntu,我使用的... 查看详情

androidadt无法识别高版本手机unknown,eclipse日志无法输出等问题

...都是正常的,但ADT会有无法识别高版本手机sdk,eclipse日志无法输出等问题…为什么还在用eclipse???个人觉得开发sdk起来很方便,虽然在jdk+sdk高版本移植时会有加载报错的问题,这个是IDE支持问题... 查看详情

jsp学习

...否转成WEB项目选是。这里介绍一下WEB项目的目录结构src/main/java:放一些servlet之类的java文件src/main/web-app/         /jsp、/js、/img         查看详情