关于maven的依赖重复问题
大家使用maven的时候,经常会遇到依赖重复的问题。比如velocity1.6.4依赖commons-lang2.4,commons-configuaration1.2 也依赖commons-lang但是版本是2.1。这样就会用两个commons-lang的jar。一般情况下也不会有什么问题,但是如果要是依赖多个servlet-api。在容器启动的时候,就会报错,比如spring 的过滤器加载的时
·
大家使用maven的时候,经常会遇到依赖重复的问题。比如velocity1.6.4依赖commons-lang2.4,commons-configuaration1.2 也依赖commons-lang但是版本是2.1。这样就会用两个commons-lang的jar。一般情况下也不会有什么问题,但是如果要是依赖多个servlet-api。在容器启动的时候,就会报错,比如spring 的过滤器加载的时候:
java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
所以就需要去除,重复的依赖。在eclipse中maven插件中,可以看到依赖重复的位置。打开pom文件,点击Dependency Hierarchy标签
打开pom文件,在依赖中,加入exclusion标签
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>${velocity.tools.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
dependency:tree 就可以了,如果没有使用eclipse的maven插件的话,可以使用maven的dependency插件,查看依赖树,找到重复的依赖。
更多推荐
已为社区贡献1条内容
所有评论(0)