* Cross-platform.
* Easy access to remote packages as soon as they're posted.
* Versions must specified, so builds are very repeatable. You bear the responsibility of updating your dependencies, but you don't get surprised if a version decides to break compatibility, either.
Also, very decentralized, and it's easy to create a directory locally to hold the dependencies within a project (specify a file:// repository relative to ${project.dir}), or on a per-system-user level (mvn install), or on a per-company/organizational unit basis (self-hosted repos are a cinch).
It's actually a fantastic package management system tailored to Java that works extremely well. Its main problem is that it's also fantastically verbose, and including more and more build plugins can grow exponentially more arcane the greater the number of plugins involved. However, with Go's standardized directory layout among other things (I admit, I haven't done much research into trying Go out), something akin to Maven may actually be a good fit.