微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在Maven中使用dependencyManagement通常不会导致问题?

如何解决为什么在Maven中使用dependencyManagement通常不会导致问题?

我了解Maven中的dependencyManagement在避免子pomp中使用不同版本的依赖项以及使用一个(只有一个)依赖项版本方面给您带来了很大的好处。

与此同时,我正在努力理解为什么用dependencyManagement覆盖可传递依赖项是安全的事情。 假设我们有一个依赖项 D ,它的依赖关系设置为2.0版。 另一个依赖项 C -也使用 D ,尽管它依赖于1.0版中的 D 。 使用dependencyManagement,我将该传递依赖项设置为2.0。 这不是很危险吗?毕竟, C 依赖于API和1.0版的实现-如果在 D 的1.0版和2.0版之间进行了重大更改,该怎么办?

解决方法

这不是安全的事情。

它可能导致您描述的问题。

但是由于您不能拥有一个以上的依赖版本(至少,并非没有阴影),因此您需要选择一个或让Maven决定。在大多数情况下,后者比自己选择一个合理的版本更危险。

,

之所以有效,是因为 D 2.0 向后兼容。 因此, D 2.0 提供了所有API和功能,例如 D 1.0 ,因此 C 可以使用它。

如果 D 2.0 向后兼容的,则您有冲突。您可能需要升级 C ,或找到所有依赖项都可以愉快地依赖的 D 的较低版本。

您可以使用with open("NAME_DATA.txt","r") as name_file: data = name_file.read() name = str(input("Hello,What is your first and last name?\n")) if name in data: Clear() print("Good to see you again! It looks like you have used this before!") tm.sleep(3) else: Clear() print("I see this is your first time using this software. Have fun! Just a disclaimer,your name will be added to the name_data.txt file,but we will never share anyones name!") tm.sleep(5) with open("NAME_DATA.txt","a") as name_file: name_file.write(str(name) + "\n") 来解决冲突,如here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。