所以基本上发生的事情是你从一个配置错误的 jar 中拉入两个版本(拉入两个版本,这是多余的),或者从多个依赖项中拉入一个版本,另一个拉入另一个版本,冲突!我将其称为 commons-beanutils 的“奇怪的发布系统”问题,因为 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
尽管根据对另一个答案的评论,将“某物”撞到使用 commons-beanutil 1.9+ 的版本也可以。