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