在开发和集成过程中,SVN和Nexus都被广泛用作源代码库。 这就是说,当我们可以通过SVN设置我们的回购协议时,为什么我们真的需要使用Nexus?即使SVN有一个适当的版本控制模式,并且广受好评。Nexus和SVN有什么区别?
通过谷歌浏览,但似乎没有提供明显的区别。 请澄清我。
在开发和集成过程中,SVN和Nexus都被广泛用作源代码库。 这就是说,当我们可以通过SVN设置我们的回购协议时,为什么我们真的需要使用Nexus?即使SVN有一个适当的版本控制模式,并且广受好评。Nexus和SVN有什么区别?
通过谷歌浏览,但似乎没有提供明显的区别。 请澄清我。
它们都被广泛使用,它们都是存储库......但svn是源代码的存储库,其中nexus是工件的存储库(像jar这样的二进制文件)。他们是非常多的免费系统。
你可以在颠覆中存储所有东西。颠覆式结账会在某个时间点捕获您的文件系统。在我看来,这种方法有两个主要问题
Subversion是极少数具有高效二进制文件存储机制的SCM系统之一,但对我来说,交易断路器正在使用SCM进行部署。我看到开发团队无法从CVS和Subversion等工具升级,因为这些工具直接或间接地需要在客户站点上发布和安装软件。
尽管我们可能会在某个时间点标记源代码,但保留发送给您的客户的二进制文件的副本至关重要。相同的源代码很少创建完全相同的二进制输出。例如,元数据文件可能包含构建日期,导致zip/tar归档具有相同的功能结果,但具有不同的校验和。校验和对于审计部署非常重要,可以证明分发了正确的文件,有时还可以对发布版本进行逆向工程。
而不是继续喜爱的咆哮,我提供了关于这个问题的一些博客文章:
真棒邮政标志。 –
Subversion是源代码管理。您可以从那里检入和检出源文件,它可以区分基于文本的源文件,允许您在整个发行版和分支中创建标签。
Nexus通常用于jar分发。您可以存储构件,但它们通常是经过编译的,与Subversion不同,您最终可以用较新的构件替换较旧的构件,并且无法跟踪这些更改。
您可以同时使用Subversion进行源代码控制,然后使用Nexus来实现它的原始目的:将编译的Jar文件存储在本地Maven存储库中。
你可以在Subversion中存储jar文件吗?当然你可以,但是它会给你带来什么? Jar文件占用了大量的空间,而且很容易看不到从一个到另一个的变化。相反,他们占用了大量的空间。瓶子占用Subversion版本库80%到90%的情况并不少见。
这就是为什么我们使用像Nexus这样的东西来存储我们的jar,然后在我们编译时使用Maven或Ant与Ivy来获取它们。
想象一下汽车工厂。在像this这样的蓝图中,出来了像this这样的车辆。 SVN就像存储蓝图的文件柜,而Nexus就像存储成品的仓库。
现在应该有输入和输出之间的1对1关联。但是让我们假设你改变了工厂本身的环境。那么即使你使用相同的蓝图,成品也可能出现不同或错误。
因此,作为一般规则,最好尽可能使用Nexus的成品,这已经过质量测试。
希望有所帮助。
谢谢。这是很好的答案。 – kendotwill
确实,SVN还可以用作储存罐子的回购仓库吗? – Faz
SVN是一个源代码控制管理,如果你希望你可以在这里存储你的工件,但它不是SVN的主要功能。 Nexus是一个企业资源库管理器,负责存储所有罐子,公司管理的战争,并允许我们与Maven集成以下载和使用工件。 –