推荐构建工件存储库管理器

时间:2011-08-18 08:01:43

标签: repository artifacts

目前,我们使用FTP来维护构建工件分发和第三方产品(仅供内部使用)。

工件是docs(HTML / pdf / chm / ...),libs(.dll / .so / .a / .jar / ...),程序(.exe / .jar / ...)和还要别的吗。它们不限于Java / .NET,可以来自不同的文化(固件,驱动程序,移动/工作站,GUI,Win / Linux / Mac / Solaris / AIX等)。

为了实现hierarhy,我们使用这样的路径:

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。听到缺点和限制也很好。

更新

2 个答案:

答案 0 :(得分:48)

您正在创建自定义软件工件存储库。有三个开源项目已经这样做了:

Artifactory和Nexus也有付费版本。

您可以在这些存储库中存储任何类型的文件,并且您不需要使用Maven。您可以手动将工件部署到它们。您可以设置细粒度的访问控制。它们与自动构建工具很好地集成。

我认为使用其中一种工具可以省去很多精力!

Here三者之间相当公正(社区驱动)的比较矩阵。

答案 1 :(得分:0)

使用SVN + Apache(mod_dav_svn.so,mod_authz_svn.so)似乎我得到了:

  • 通过HTTP协议进行匿名只读访问,范围广泛 支持客户端下载(来自GNU Make的wget / curl,任务为 Apache Ant)。
  • 用户/组易于维护的写访​​问权限(语法简单):

    [repo:/path]
    user = rw
    

    通过尸体实用程序。

  • 与LDAP集成。

  • 发布历史(何时,何人和谁)。
  • 原子操作(防止并发释放和错误回滚)。