I'm confused regarding Ivy, Maven and Archiva - they all seem to be trying to solve similar problems.
I think that I'm right in thinking that Ivy retrofits Maven-like functionality to Ant (i.e. Ant + Ivy ~= Maven)? But I'm unclear about what Archiva adds (if anything) to Ant + Ivy and/or Maven. When would I use (say) Ivy, when would I use Archiva and when would a combination make sense (if at all)?
Background: We need to put some kind of dependency management and build artefact archival in place. Our source is cross-language (a mix of C++, Java, Scala, Ruby and Python) and our build process is cross-platform (Linux, Windows, OSX, Android, iOS, QNX). We have an existing scons-based build system which is somewhat intricate. Ideally we want to add dependency management and artefact archival to this, rather than (say) moving wholesale to Maven.