这个问题很尴尬,一开始以为*.pom文件中配置的
<dependencies>
<dependency>
</dependency>
</dependencies>
就是所要下载和导入的jar包以及对maven了解的不多。
出现问题是因为这样的一个例子
在*.pom文件中已经有了:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency>
slf4j的一个jar包。
同时还有一个:
<dependency> <groupId>displaytag</groupId> <artifactId>displaytag</artifactId> <version>1.2</version> </dependency>
的一个jar包。源都是在 search.maven.org中搜索的。
在后者的包中还存在了一个poslf4j 1.4.2版本的一个jar包。这样就导致了有重复的jar包,致使启动时出现了找不到类似slf4j.jar的异常,由于有2个,系统不知道该如何选择,所以还是提示说找不到。
之前的解决方法都是用工程的build path 删除那个1.4.2的jar包。
但是每次又从svn下载下来的时候或者用maven更新jar包后还是会出现如上的问题。
然后就想这个问题一定也常见,就百度一下。
解决方案如下:
<dependency> <groupId>displaytag</groupId> <artifactId>displaytag</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>jcl104-over-slf4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency>
在其中添加<exclusions><exclusion></exclusion></exclusions>即可排除重复的jar包。百度还说这个slf4j包在很多SSH中很多都包含,如果版本控制不好,则会出现如下问题。当然在search.maven.org中去搜索的jar也有一定的问题,选择还说靠经验。
最后有个疑问想请大神给个答案!!!!毕竟我找这个重复的jar是通过注释一一去排查,有没有什么更方便快捷的解决方案。?