使用Maven公共存储库与在本地存储库有什么好处?
我在使用公共存储库时看到以下缺点:
为了避免在this advice之后使用公开回购,有人也建议
" 运行类似Nexus的东西,您自己的maven仓库,您可以上传第三方专有jar文件,还代理其他公共存储库,以保存带宽?"。
这真的总结了我的怀疑:为什么要简单地将库文件共享给几个开发人员来解决所有的痛苦?
答案 0 :(得分:6)
- 如果出于某种原因某些库已更新,我的应用程序可能会崩溃,考虑到我使用了数百个必然会发生的库。
没有。我知道墨菲的法律规定任何可能发生的事情都会发生。但是在Maven Central发布的图书馆应该是稳定的。如果库已更新,则它将使用新版本,因此不存在冲突。没有理智的图书馆维护者会反对。
- 如果指定了特定的库版本以避免新版本破坏应用程序,则该特定版本可能不再可用。
没有。 You can't remove an artifact from Maven Central。所以这是不可能的。
- 存储库可能总是受到网络问题或完全阻止软件开发的类似错误,通过git共享所有必需jar的本地lib文件夹更加健壮。
虽然这是真的,但Maven会在本地存储库中保留所有工件的缓存。它只需要下载一次。
使用内部存储库管理器的优势超出了缓存Maven Central的范围。它允许所有依赖项的中央入口点,无论这些依赖项是否公开。它还可以托管内部库和私有库(如Oracle JDBC)。此外,使用它对于Maven项目是透明的:依赖关系的声明方式完全相同,无论是公共工件还是内部工件。
答案 1 :(得分:0)
使用中央存储库的一个重要优势: 您无需手动添加所有传递依赖项。 通常这个列表可能很大,您只能通过运行应用程序来注意它 而自动依赖管理将使用所有必需的lib更新类路径。