我终于习惯了在我的项目中没有任何未声明或已声明但未使用的依赖项。虽然很难跟踪列在dependency:analyze中的未使用的声明的运行时/测试依赖项...一个人必须在pom.xml中写注释或以其他方式管理它们,以知道它们是用于测试还是运行时。
但是解决版本冲突的方法对我来说仍然不清楚。关于传递依赖。
最近者优先策略是如何工作的?什么时候使用一个版本而不是另一个版本?
如果您使用版本号声明了已使用但未声明的依赖项-它总是胜出
如果没有明确指定依赖项版本,则Maven无法解决可能涉及此依赖项的任何版本冲突(奇怪,但在这里写了)
如果您没有声明未声明的使用依赖项,则它会选择最接近级别的传递性依赖项(最近者优先策略),如果冲突在同一级别上,则它会在版本A和版本B之间进行某种决策...也许是在处理依赖项时首先遇到的那个胜出