对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个artifact对应的jar包在classpath中。而对于scope=provided的情况,则可以认为这个provided是目标容器已经provide这个artifact。
这么说可能不是很好理解:换个简单的,就是你在把这个项目打成war包时,scope=provided的jar包,不会出现在WEB-INFO/lib目录下,而scope=compile的jar包,会放到WEB-INFO/lib目录
这样可以避免想servlet-api.jar这样的jar包冲突,但是如果遇到idea下默认不提供servlet-api.jar时,使用scope=provided就会缺少对应的jar包,也就是我遇到的问题找不到类
consult
https://blog.csdn.net/liubofucius/article/details/80844511