maven:有没有办法检查子依赖的特定版本是否与父依赖兼容?

drkbr07n  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(488)


我有一个 janusgraph-cassandra 我的项目中的依赖性 cassandra-all 可传递的依赖关系。
现在我正在尝试升级 cassandra-all 从2.1.20到3.11.4的依赖关系,但它似乎与父级不兼容 janusgraph-cassandra 0.3.1.
有没有办法检查父依赖项和可传递依赖项之间的版本兼容性?或者应该把只有maven工件自己带来的版本是兼容的作为一条经验法则吗?

pbwdgjma

pbwdgjma1#

专业人士 dependency:tree 目标是一种确定哪些地方可能存在相互冲突的依赖关系的方法,但是建立兼容性是一个更复杂的问题,maven本身无法解决。
确定版本之间是否存在兼容性有时是相当困难的。主要原因是没有强制的规则来决定库何时发生了破坏性的更改。
通信兼容性的一种流行方式是使用可预测的版本控制策略。语义版本控制是一种流行的策略,它要求:
给定版本号major.minor.patch,增加:
主要版本当您进行不兼容的api更改时,
以向后兼容的方式添加功能时的次要版本,以及
修补程序版本时,你向后兼容的错误修复。
话虽如此, cassandra-all 不声称遵循这一点。Cassandra是一个数据库,而不是一个图书馆。在小版本之间有已知的破坏性api更改,我打赌它已经知道在补丁版本之间发生。
如果您使用的是janusgraph,我建议您绑定到它声称依赖的cassandra版本。
但是,如果您使用远程服务器模式运行带有cassandra的janusgraph,我预计您可以将cassandra集群升级到3.11.4,并且应该继续工作。
很可能只有在使用嵌入式模式时 cassandra-all 已使用。

相关问题