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