我们正在使用Maven进行大型构建过程(> 100个模块).我们一直将外部依赖项存储在源代码控制中,并使用它来更新本地仓库.
但是,我们已准备好升级到可以缓存中心的本地仓库,这样我们就不必主动下载所有第三方(但我们仍然可以从本地仓库中获取).此外,我们希望从每晚构建中发布我们的内部构建工件,以便开发人员不必构建世界.
我们正在考虑Nexus和Artifactory.优先选择其中一个的原因是什么?我们应该考虑其他人吗?
目前,我们使用FTP来维护构建工件分发和第三方产品(仅供内部使用).
工件是docs(HTML/pdf/chm/...),libs(.dll/.so/.a/.jar/...),程序(.exe/.jar/...)等等.它们不限于Java/.NET,可以来自不同的文化(固件,驱动程序,移动/工作站,GUI,Win/Linux/Mac/Solaris/AIX等).
为了使hierarhy orginize我们使用这样的路径:
ftp://3pp/VENDOR/PRODUCT/VERSION/... ftp://3pp/opensource/PACKAGE-x.x.x.tar.bz2 ftp://dist/PRODUCT/VERSION/...
为了维护工件的描述,我们使用README和CHANGES普通测试文件(reStructuredText).
这个架构中缺少什么?
我不是在寻找现有的解决方案.一些包管理器如rpm/dpkg,听说过Maven repo等......
请推荐Build Artifact Repository Managers.听到缺点和限制也很好.
UPDATE