java/maven如何在运行时解决依赖冲突
对不起,我的新手问题 假设我有一个包a,它在它的maven文件中声明了B,C作为它的依赖项。B、 C使用两个不同版本的log4j进行日志记录。我有几个问题:java/maven如何在运行时解决依赖冲突,java,maven,Java,Maven,对不起,我的新手问题 假设我有一个包a,它在它的maven文件中声明了B,C作为它的依赖项。B、 C使用两个不同版本的log4j进行日志记录。我有几个问题: 如果我使用maven,并将B、C声明为A的依赖项。当maven从mavencentral repo中引入B、C的工件(.jar)时。B、C jar文件是否包含log4j类文件,或者只包含它们自己的编译文件(B、C自己的源代码,而不是依赖项) 如果我理解正确的话,当构建发生时,最终构建中只有一个log4j类文件(即使B、C使用不同版本的log
Maven假设可以始终使用较新版本的工件,而不是较旧版本的工件。如果没有,您需要开始在依赖项中使用exclude。反例:google guava,其中较新的版本删除了旧的功能。guava违反了现有的任何版本编号模式。它们只按自己喜欢的方式玩。要么你买要么不买。。。