25

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

工件是文档(HTML/pdf/chm/...)、库(.dll/.so/.a/.jar/...)、程序(.exe/.jar/...)和其他任何东西。它们不限于 Java/.NET,可以来自不同的文化(固件、驱动程序、移动/工作站、​​GUI、Win/Linux/Mac/Solaris/AIX 等)。

为了组织层次结构,我们使用这样的路径:

ftp://3pp/VENDOR/PRODUCT/VERSION/...
ftp://3pp/opensource/PACKAGE-xxxtar.bz2
ftp://dist/PRODUCT/VERSION/...

为了维护工件的描述,我们使用READMECHANGES纯测试文件(reStructuredText)。

此架构中缺少什么?

  • 缺少权限(任何人都可能损坏存储)。
  • 缺少依赖项跟踪(因此,如果版本依赖项发生更改,则必须更新每个构建文件)。
  • 缺少获取活动(某些文件似乎不再需要,但我们不知道是哪个)。

我并没有深入寻找现有的解决方案。一些包管理器,如 rpm/dpkg,听说过 Maven 仓库等...

请推荐构建工件存储库管理器。也很高兴听到缺点和限制。

更新

4

2 回答 2

49

您正在创建一个自定义软件工件存储库。已经有三个开源项目可以做到这一点:

Artifactory 和 Nexus 也有付费版本。

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

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

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

于 2012-07-11T17:00:05.473 回答
0

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

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

    [回购:/路径]
    用户 = rw
    

    通过尸体实用程序。

  • 与 LDAP 集成。

  • 发布历史(时间、内容和人员)。
  • 原子操作(防止并发发布和错误回滚)。
于 2011-11-22T09:41:03.230 回答