test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
runtime在运行的时候依赖,在编译的时候不依赖
默认的依赖范围是compile
我就是在新建一个maven模块后,直接把原pom.xml内容复制过去,然后provided变成了compile,这样就会与原有的tomcat中的servlet-api发生冲突
将compile改为provided即可解决(这个问题困扰了我好久,哭死)