您的位置:首页 > 其它

Maven Pom 文件中的隐式依赖导致Jar冲突

2016-10-10 05:47 183 查看
在maven项目中遇到这样一个场景:

    项目中的pom文件中,依赖了spring-core,而Spring-core又隐式的依赖了commons-logging

    项目中同时配置了对定时任务quartz 包的依赖,而quartz又隐式依赖了slf4j。

这样项目中既有了commons-logging又有了slf4j。导致在log4j.properties里配置的mybatis的sql显示配置,一直没起作用,直到我查看maven dependencie中的jar包时,才发现项目既依赖了common-logging又引入了slf4j。后来通过排除quartz中的slf4j的依赖,就解决了上述冲突的问题:

[html] view
plain copy

 print?





<dependency>  

                <groupId>org.quartz-scheduler</groupId>  

                <artifactId>quartz</artifactId>  

                <exclusions>  

                    <exclusion>  

                        <groupId>org.slf4j</groupId>  

                        <artifactId>slf4j-api</artifactId>  

                    </exclusion>  

                </exclusions>  

            </dependency>  

以后该如何解决这种类似的问题呢。eclipse提供了对隐式依赖jar包的查看功能:在eclipse中打开一个pom文件,在Dependency Hierarchy的Tab页中,就可以查看当前pom文件中显示声明的jar包,及这些显示声明的jar中隐式引入的依赖jar包。



这样就可以查看有哪些隐式的依赖jar会导致jar包冲突了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven jar冲突