在VCS中存储.jar文件的最佳实践(SVN,Git等):请勿。
在像SVN这样的CVCS(集中式VCS)中,它可以处理数百万个文件,无论其大小如何都是有意义的。
它不在DVCS中,尤其是像Git这样的(及其限制):
- 二进制文件不适用于VCS。
- 默认情况下,克隆DVCS回购将让你 所有 的历史,所有的罐子版本。这将很慢,并且会占用大量磁盘空间,而不管这些jar的压缩程度如何。
您可以尝试浅克隆,但这是不切实际的。
使用第二个存储库(例如 Nexus )来存储这些jar,并且仅引用一个
txt文件(或
Maven 项目的
pom.xml文件)以获取正确的jar版本。
工件仓库更适合于[分发和发布管理目的](http://codingdict.com/questions/110315。
话虽如此,如果您 必须
将jar存储在Git存储库中,我建议最初将其以压缩格式存储(这是jar的默认格式:请参见创建JAR文件)
。压缩和未压缩格式都可以被Git视为二进制文件,但至少以压缩格式,克隆和签出将花费更少的时间。
但是,许多线程提到可以以未压缩格式存储jar的可能性:
我正在使用一些回购协议,将其定期签入50MB tarball。
我说服他们不要压缩tarball,而git在它们之间进行增量压缩方面做得相当不错(尽管这样做需要大量的RAM)。
您在这里有更多关于Git上经过修饰的对象的信息:
- 如果您要处理二进制或文本,则没有什么区别;
- 增量不一定与先前版本中的路径相同,因此即使添加到历史记录中的新文件也可以以限定格式存储;
*当使用存储在deltified表示形式中的对象时,与在压缩的基本表示形式中使用同一对象相比,它将产生更多的成本。删除机制会在考虑此成本以及空间效率的情况下进行权衡。
因此,如果克隆和检出不是您每隔5分钟必须执行的常见 *** 作,则将jar以未压缩的格式存储在Git中会更有意义,因为:
- Git将为这些文件压缩/计算增量
- 您最终会在工作目录中得到未压缩的jar,然后可能会更快速地加载jar。
建议:未压缩 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)