Maven拥有一个版本管理系统,如果引用了多个版本的库,则会选择最高版本。例如,如果pom A引用版本1.1,pom B引用版本1.2,则引用A和B的pom C将使用最高版本1.2。
这种方法假设1.2与1.1完全向后兼容,这是一种好的必需方法。然而,在库的生命周期的某些时候,清理工作是明智的。对于我来说,API中的任何重大更改都意味着增加主要版本,因此2.0不需要与最新的1.x 100%向后兼容。很好。
然而,Maven并不真正关心这一点,如果pom B从1.2升级到2.0,Maven将使用2.0,但pom A无法与该版本一起使用。
如何告诉Maven版本不再向后兼容?
我尝试过指定排除范围,因此A引用[1.1、1.999)和B引用[2.0、2.999)。然而,Maven仍然解决最大版本号(2.0)。
这种方法假设1.2与1.1完全向后兼容,这是一种好的必需方法。然而,在库的生命周期的某些时候,清理工作是明智的。对于我来说,API中的任何重大更改都意味着增加主要版本,因此2.0不需要与最新的1.x 100%向后兼容。很好。
然而,Maven并不真正关心这一点,如果pom B从1.2升级到2.0,Maven将使用2.0,但pom A无法与该版本一起使用。
如何告诉Maven版本不再向后兼容?
我尝试过指定排除范围,因此A引用[1.1、1.999)和B引用[2.0、2.999)。然而,Maven仍然解决最大版本号(2.0)。