今天在搭建ssm环境的时候,发现子工程的servlet和jsp配置了<scope>provided</scope>,后续依赖该工程的所有项目都出不来这两个依赖,查询资料后得知,provided有两大特性
provided是没有传递性的,也就是说,如果你依赖的某个jar包,它的某个jar的范围是provided,那么该jar不会在你的工程中依靠jar依赖传递加入到你的工程中。
provided具有继承性,上面的情况,如果需要统一配置一个组织的通用的provided依赖,可以使用parent,然后在所有工程中继承
综合上述,得出解决方案:在父工程添加对应的依赖,这样所有子工程都能依赖该jar包了.配置如下:
<dependencies>
<!-- Tomcat7 servlet-api -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
<version>7.0.47</version>
<!-- 发布时依旧会使用第三方web服务器中提供的jar包,而不会使用本jar包 -->
<scope>provided</scope>
</dependency>
</dependencies>