繁体   English   中英

maven + eclipse + servlet-api.jar

[英]maven + eclipse + servlet-api.jar

我正在使用Eclipse和插件m2eclipse来构建和管理我的项目。 在POM中,我包含了servlet-api的条目:

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
  </dependency>

提供范围,而不是将.jar文件包含到.war包中(它已由tomcat servlet容器提供)。 通过mvn install编译是正确的 ,文件包含在WEB-INF \\ lib中 ,部署到tomcat工作正常,程序正常,没关系。

但是,案例在Eclipse内部开始。 从eclipse启动我的Web应用程序后,我收到错误:

\\ WEB-INF \\ lib \\ servlet-api-2.5.jar) - jar未加载。 请参阅Servlet规范2.3,第9.7.2节。 违规类:javax / servlet / Servlet.class

我不知道为什么,因为,Maven依赖关系 (包括javac的-的servlet-2.5.jar)包含与Java EE模块依赖 ,并推杆内部WEB-INF \\ lib文件夹,而从日食开始。 另一方面,在eclipse中我提供了到我的apache tomcat目录的路径,在项目内部,自动引用Apache Tomcat v6.0中的库,包括servlet-api.jar

所以基本上,在从POM删除对servlet-api-2.5.jar的引用之后,该库从Maven Dependencies中消失了,从eclipse启动我的web应用程序时我没有异常。 一切都很好......在日食中

当然没有进入POM内部,这次mvn install会遇到同样的异常,我之前提供过。

有没有办法让它工作而不删除而不是插入引用,这取决于我想做什么:使用maven编译或使用Eclipse运行?

问候

这个

\\ WEB-INF \\ lib \\ servlet-api-2.5.jar) - jar未加载。 请参阅Servlet规范2.3,第9.7.2节。 违规类:javax / servlet / Servlet.class

只是来自应用服务器的一个警告,它忽略了你包含的一个JAR并且不会加载它。 可以安全地忽略它。

听起来问题是Eclipse的部分/插件在嵌入式应用服务器中加载您的项目 - 听起来它只是使用依赖项列表作为库路径捆绑的内容,并且没有Maven范围的概念。

我个人会忽略这样的事情 - 你的Maven构建工作正常,在Eclipse中运行应用程序应该可以正常工作除了这个可忽略的警告 - 否则你将不得不按照一个工具所期望的那样调整你的项目(网络) Eclipse的app插件与另一个(Maven)。

(另外我总是发现在Eclipse中运行webapps作为“Web项目”是一个痛苦的屁股,并导致各种奇怪 - 不值得麻烦 - 如果你想在servlet中快速加载你的Maven webapp项目容器,只需使用mvn jetty:runmvn tomcat:run 。用IDE进行战斗可能是浪费时间)。

安装名为“ Maven Integration for WTP ”的插件,它可以完全解决这个问题。

存储库URL: http//download.jboss.org/jbosstools/updates/m2eclipse-wtp/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM