【问题标题】:Is it best practices to increment my MAJOR version number in Maven if I change my dependency list?如果我更改依赖项列表,是否最好在 Maven 中增加我的主要版本号?
【发布时间】:2017-01-27 15:02:49
【问题描述】:

假设我有一个网络应用程序和两个罐子。 Web 应用程序依赖于 A.jar,而这又依赖于 B.jar

如果我让 A.jar 依赖于 C.jar,A.jar 现在应该是 2.0 版本吗?如果网络应用作者不使用 Maven,更新 A.jar 而不将 C.jar 添加到项目中会破坏他的代码。

或者相反,如果我删除对 A.jar 对 B.jar 的依赖,那也会是一个主要版本吗?如果作者使用的是传递性 B.jar 并且未能在他的 pom.xml 中显式声明依赖关系,那么随着 A.jar 更新而传递性 B.jar 的消失将破坏他的程序。

【问题讨论】:

  • 如果你破坏了向后兼容性,那么是的 > 更改主要版本。

标签: java maven semantic-versioning


【解决方案1】:

如果我让 A.jar 依赖于 C.jar,A.jar 现在应该是 2.0 版本吗?

不支持并行包版本的环境中的传递依赖会给系统管理员和产品支持人员带来特别脆弱和令人烦恼的产品间依赖问题。如果新的 C.jar 是 semver rules (#8) 下的主要(重大)更新,那么您必须增加 A.jar 的主要版本号。如果它是 C.jar 中的次要更改或补丁更改,那么 A.jar 应该会收到至少相同级别的提升,如果 A.jar 还包含比 C.jar 更高级别的更改,则更多。

或者相反,如果我删除对 A.jar 对 B.jar 的依赖,这也会是一个主要版本吗?

如果 A.jar 面向客户的界面中没有重大更改,则不会。但是,请注意不要从其他产品依赖于 B.jar 的系统中删除 B.jar。

【讨论】:

    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 2012-08-01
    • 2019-04-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多