Build Tools discussion - smessing/Hog GitHub Wiki

After doing some research, and a little experimenting with Maven, I think it will be to our benefit to go with good old makefiles.

Maven's approach is standardization over configurability, which in the end I think will make it particularly difficult to use to build projects that require an uncommon setup of integrating yacc (probably CUP), lex (prob JFlex) and hadoop all together. Maven is particularly good at keeping track of and updating dependencies. I am not sure how many dependencies our target java programs will have, other than the hadoop libraries. And after spending a couple of days with maven, I already hate it.

Ant makes it easier to customizably configure than Maven, though still uses all xml files. But the problems and work it apparently takes to figure out how to use Ant for any particular situation I don't think will be worth the effort for us.

I actually have very little experience with make. But from the little I have done and from reading examples, its not too complicated. And I found some makefiles where people are integrating CUP and JLex and it looks easy.

For those interested, it seems that for java build tools, the makefile concept is making a comeback, with more of a java project focus in Rake and Apache Buildr. Might be nice to try one of them and pick up some Ruby along the way (which they both require).

System integrator, what do you think? (sorry for how long this is).