为什么开发编译时不用Tomcat自带的servlet-api

视频中说:“
在<version>下面在额外增加一个范围<scope>,书写provided。为什么要写这个选项呢?
Tomcat运行环境是自带servlet-api这个jar包的。如果在程序打包发布的时候,将当前的依赖也放入到war包中,这可能会造成当前工程中的servlet-api与Tomcat自带的servlet-api版本冲突
provided的含义是只有在开发编译,它才会进行引用,当进行打包最终使用的时候,servlet-api这个jar会被排除在外”
那么既然Tomcat中自带servlet-api,为什么开发编译时不用Tomcat自带的servlet-api,为什么这里还要引入javax.servlet-api ?
18
收起
正在回答
1回答
同学你好,Tomcat自带servlet-api,在运行时提供对应的类。但是在开发编译时,可能会因为找不到对应的类而报错,所以需要添加servlet-api依赖。加上<scope>proviede</scope>表示只在编译和测试阶段有效,不会被打包,这样不会和实际运行环境冲突。
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星