I've been using Maven and ant+ivy so far but I think it is rather hard to maintain all the configuration for them.
What I'd really like to have is something like leiningen which does not need any xml and you can manage the dependencies in code (in clojure code in case of leiningen). It also comes with a handy cli tool.
I know that leiningen uses maven internally so it is not a problem if your suggestion uses maven internally as well so a good abstraction which simplifies things and requires no interaction with maven/ant/ivy will be equally good for me.
I would use pure maven or gradle, as it is easier to create build scripts, but would steer away from ant.
Ivy is an underused dependency management solution, and I personally have only cursory experience (as in building artifacts but not managing them) and I have never maintained an ivy build, but seems pretty straightforward. One thing to consider is availability of plugins and readily built artifacts(which is proportional to popularity) and maven is the clear leader.
So, my recommendation would be pure maven or gradle.
Edit: In recent years it has become modern for some repo owners to maintain both an ivy and a maven build to increase their code's exposure. If you were to do that, gradle would be simpler as it provides a nice abstraction on top of the nitty gritty maven/ivy stuff, once you are to write your scripts.
I would suggest gradle. Gradle is both a dependency management and build system. You write your build scripts in groovy code, no xml. gradle can work with existing ivy or maven repos. Its configuration tends to be a lot less verbose than maven's and it's very flexible (since you can write code in your build script when needed).
There is plenty of documentation at http://www.gradle.org/documentation
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With