Recommend Build Artifact Repository Manager

gavenkoa picture gavenkoa · Aug 18, 2011 · Viewed 32.1k times · Source

Currently we use FTP to maintain build artifact distribution and 3rd party products (for internal use only).

Artifacts are docs (HTML/pdf/chm/...), libs (.dll/.so/.a/.jar/...), programs (.exe/.jar/...) and anything else. They are not restricted to Java/.NET and can come from different cultures (firmware, driver, mobile/workstation, GUI, Win/Linux/Mac/Solaris/AIX,... etc).

To orginize hierarhy we use such paths:

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

To maintain description of artifacts we use README and CHANGES plain test files (reStructuredText).

What is missing in this schema?

  • Missing permissions (anyone can damage storage).
  • Missing dependency tracking (so every build file must be updated if version dependency changed).
  • Missing fetching activity (some files seem no longer needed, but we don't know which).

I am not deeply looking for existing solutions. Some package manager like rpm/dpkg, heard about Maven repo etc...

Please recommend Build Artifact Repository Managers. Also it is good to hear drawbacks and restrictions.

UPDATE

Answer

M. Dudley picture M. Dudley · Jul 11, 2012

You're creating a custom software artifact repository. There are three open-source projects which already do this:

Artifactory and Nexus also have paid versions.

You can store any kind of file in these repositories, and you don't need to use Maven. You can manually deploy artifacts to them. You can set up fine-grained access control. They integrate well with automated build tools.

I think using one of these tools would save you a lot of effort!

Here's fairly unbiased (community-driven) comparison matrix between the three.