假设我有一个网络应用程序和两个罐子。网络应用程序依赖于A.jar,这取决于B.jar
如果我让A.jar依赖C.jar,那么A.jar现在应该是2.0版吗?如果web-app作者不使用Maven,更新A.jar而不将C.jar添加到项目中将会破坏他的代码。
或者相反,如果我删除对A.jar的依赖,那么B.jar也将是一个主要版本?如果作者传真地使用B.jar并且未能在他的pom.xml中明确声明依赖关系,则传递B.jar与A.jar更新的消失将破坏他的程序。
答案 0 :(得分: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。