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?
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
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.