1. 问题描述

  控制台说:无法将 com.zpx.servlet.MyServlet 识别为 javax.servlet.Servlet

2. 问题原因

  Maven的一个核心功能就是一键构建,所以Maven将不再使用本地安装的Tomcat,而是使用Maven自身集成的Tomcat插件对项目进行构建。手动导入的 jar 包和本地安装的Tomcat中的 jar 包名字完全一样,却又是两个包,造成了 jar 包冲突异常。

3. 解决方法

  Maven为 jar 包坐标提供了 <scope> 标签,指明了 jar 包的作用域,限制了 jar 包的使用范围,解决了 jar 包冲突。 

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
</dependencies>

4. 要点补充

  Maven的 <scope> 标签有五个属性,他们的作用域分别是:

    compile:默认属性,对于 编译、测试、运行 三个状态都有效

    test:仅对 测试 状态有效(例如:junit)

    provided:仅对 编译和测试 状态有效(例如:servlet-api、jsp-api)

    runtime:仅对 测试和运行 装填有效(例如:JDBC)

    system:仅对 编译和测试 状态有效,但是需要显式提供本地 jar 包路径

最新文章

  1. 【分布式】Zookeeper客户端
  2. Sequelize 关系模型简介
  3. ural 1071. Nikifor 2
  4. 21个高质量的Swift开源iOS App
  5. 为什么重新设计 ASP.NET?
  6. UESTC_吴队长征婚 2015 UESTC Training for Search Algorithm &amp; String&lt;Problem E&gt;
  7. Dungeon Master poj 2251 dfs
  8. 如何参与Hibernate-ORM项目
  9. 用一个jsp实现对数据库发访问
  10. jQuery_base
  11. BTrace:线上问题排查工具
  12. 多元线性回归(Multivariate Linear Regression)简单应用
  13. QC内部分享ppt
  14. django 10.5 sqlite3迁移到mysql
  15. Typescript学习总结之模块
  16. mongodb 的一些基本命令以及 导入、导出,待更新
  17. Eclipse中配置约束
  18. C#Datetimepicker出现问题及解决方法
  19. 第5章 Linux 常用网络指令
  20. mysql启动登陆

热门文章

  1. ZROI17普及23-B星空题解--图的灵活转化
  2. 最近公共祖先 LCA (Lowest Common Ancestors)-树上倍增
  3. restTemplate源码解析(四)执行ClientHttpRequest请求对象
  4. ndk-build 修改输出so位置 (change ndk-build output so lib file path )
  5. macOS 在终端中使用 adb命令,每次都要source ~/.bash_profile 才生效
  6. 服务器去掉IE浏览器网络安全限制
  7. ajax _flask
  8. zookeeper:3
  9. DoD与TCP/IP
  10. python之闲聊数据类型及常用操作符