Maven里集成了Tomca,自然也就带上了Tomcat自带的jar包,我们在pom导入本地仓库中的jar包时,如果我们导入的本地仓库的jar包和Tomcat中的jar包存在重复,就会造成jar包冲突问题的出现。
(一)例子
比如在pom里导入如下本地仓库中与Tomcat相冲突的jar包:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
(二)解决方法
我们的想法是只希望这两个jar包在编译时起作用,因此我们只需要设置该jar包的作用域即可,即加入 < scope>provided< /scope>标签即可,如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
这样我们导入的jar包只在编译时起作用,在项目运行时使用的是Tomcat里的jar包。