gpt4 book ai didi

maven - 如何使用eclipse+m2eclipse防止重复servlet jar

转载 作者:行者123 更新时间:2023-12-03 21:18:30 25 4
gpt4 key购买 nike

我正在使用 Eclipse + Maven + m2eclipse 在 Apache Tomcat 中构建和测试 Web 应用程序。

我已经在 Eclipse 中配置了一个 Tomcat 服务器,并为我的 Web 应用程序配置了部署程序集,包括“Maven 依赖项”(Java 构建路径条目的特化)。

当我部署和启动服务器时,Tomcat/Catalina 总是警告我:

INFO: validateJarFile(/projects/src/main/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webapp/WEB-INF/lib/servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class



这是因为 m2eclipse 将 servlet-api-2.5 视为我的项目的依赖项,并将其视为“Maven 依赖项”的一部分,并将其作为部署程序集的一部分进行复制,但是 Tomcat servlet 容器有它自己的副本,并且不喜欢在类路径上看到 2 个副本。

我在我的 pom.xml 中标记了从我的项目到 servlet-api-2.5 的依赖项
<scope>
provided
</scope>

这确实阻止了独立 Maven 将 servlet-api-2.5 打包到我的构建中,但 m2eclipse 并不这么认为。

(这不是什么大问题,因为警告是无害的,我只在 IDE 内部测试期间看到它,真正的客户不会看到它,但我仍然想知道如何修复它,因为我喜欢清洁和我喜欢知道事情是如何运作的。)

是否有正确的方法告诉 m2eclipse 不要部署这个文件,或者告诉 Eclipse 不要让 m2eclipse 对哪些依赖项是运行时依赖项有最终决定权?

我确实找到了 https://issues.sonatype.org/browse/MNGECLIPSE-1193其中提到

the "Maven Dependencies" container reflects test compile time scope, so it is supposed to have dependencies with scope "provided"

最佳答案

从更新站点 http://m2eclipse.sonatype.org/sites/m2e-extras 为 m2eclipse 插件(“WTP 的 Maven 集成”)安装附加功能.安装后,更新项目配置。

关于maven - 如何使用eclipse+m2eclipse防止重复servlet jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com