来自Apache的两个Maven工件中有四个重复的类:commons-beanutils:commons-beanutils:1.8.3
和commons-collections:commons-collections:3.2.1
。
org.apache.commons.collections.ArrayStack
org.apache.commons.collections.Buffer
org.apache.commons.collections.BufferUnderflowException
org.apache.commons.collections.FastHashMap
有没有可能用其他一些工件替换其中的一个,以避免这种重复?我试着用谷歌搜索,但没有找到任何解决方案。相当烦人的问题。
发布于 2019-03-12 01:54:43
因此,基本上发生的情况是,您要么从错误配置的jar (两个都拉入,这是多余的)中拉入两个版本,要么从多个依赖中拉入一个版本,另一个拉入另一个版本,冲突!我称之为commons-beanutil的“奇怪的发布系统”问题,因为maven不容易处理这种模式……我的一个修复方法是增加两个版本的依赖项的版本(在我的例子中是"commons-configuration"),或者手动指定commons-configuration
的一个特定版本
所以这个mvn dependency:tree
[INFO] +- commons-configuration:commons-configuration:jar:1.6:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.1:compile (version managed from 3.2)
[INFO] | +- commons-digester:commons-digester:jar:1.8:compile
[INFO] | \- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] | \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile
变成这样:
[INFO] +- commons-configuration:commons-configuration:jar:1.7:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | +- commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] | +- commons-digester:commons-digester:jar:1.8.1:compile
[INFO] | \- commons-beanutils:commons-beanutils:jar:1.8.3:compile
尽管根据对另一个答案的评论,将"something“添加到使用commons-beanutil 1.9+的版本也可以。
发布于 2013-05-16 05:42:49
从beanutils JAR中排除收集包,它对我有效:)
https://stackoverflow.com/questions/14402745
复制相似问题