I hate maven (maybe 3.0 would be nicer, can't wait for it). Git makes storing jar files in the repository a pain, since you always download all the history when you clone, which means it was either Ant+Ivy or something similar. I like Gradle because I can write (in code) the build script, though only after looking at Gradle to see how they use Gradle to build Gradle, I managed to really understand how to use it :)
Spring is too big for what I do, just needed a DI and thats it. Did not want the configuration files to be spring files, I like what I did in Compass with Settings and did the same now (so you can easily write sensible configuration files in yaml, json, or even properties files). Also, DI really comes nicely into play because a Node can have many Indices, and each Index can have one or more Shards, and each are different Guice module (making shard level isolated DI work nicely). In spring lingo, think ApplicationContext for each index created, and each shard created per index (and Spring does come with its overhead compared to Guice).
To be honest, Guice can be a pain. For example, it lacks support for some basic things like *DI aware* lifecycle (which are part of the javax annotations, like PostCreate and PreDestroy.