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

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

http://img1.sycdn.imooc.com//climg/5f93a96f09d261fa05580344.jpg

视频中说:“

<version>下面在额外增加一个范围<scope>,书写provided。为什么要写这个选项呢?

Tomcat运行环境是自带servlet-api这个jar包的。如果在程序打包发布的时候,将当前的依赖也放入到war包中,这可能会造成当前工程中的servlet-apiTomcat自带的servlet-api版本冲突

provided的含义是只有在开发编译,它才会进行引用,当进行打包最终使用的时候,servlet-api这个jar会被排除在外


那么既然Tomcat中自带servlet-api,为什么开发编译时不用Tomcat自带的servlet-api,为什么这里还要引入javax.servlet-api ?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,Tomcat自带servlet-api,在运行时提供对应的类。但是在开发编译时,可能会因为找不到对应的类而报错,所以需要添加servlet-api依赖。加上<scope>proviede</scope>表示只在编译和测试阶段有效,不会被打包,这样不会和实际运行环境冲突。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师