views:

166

answers:

5

I really need an easy to use build tool which supports multiple languages with strong Java support. I have tried Scons but found the Java support lacking. Is there anything else out there? I'm not excited about learning yet another build tool. Also, I really don't want a build tool which is difficult to use without an IDE since I use emacs and will be writing the build scripts by hand.

Edit: When I said general purpose I meant a build tool that works with many languages. I'd like to save myself the time spent learning a new build system for every languages I use.

+1  A: 

I would recommend ant. I used it for a java project and it worked great. But we had help from a person experienced in writing the build scripts so I don't know how easy it is.

Janusz
+2  A: 

Ant, Maven, and Gradle all are designed for building Java applications.

EDIT: Let me expound....

Ant is a really good option. As the first very good open source java build system, it has grown to be a popular and widespread option. Most anything you will do in a typical java system has been done through Ant. You can find sample after sample and great tutorials on learning this. Now, just because it can handle everything doesn't mean it's quick and painless. There's a lot of 'boilerplate' build.xml that you almost certainly will be writing. Also, there is no dependency management.

Enter Maven -- Dependency management is handled very well here. Merely specify the name of the jar(s) that your project depends on and it will ensure that you have the appropriate version. Also, the help and tutorials available are very good and you can be up and building in 5 minutes.

Gradle -- this is a newer build system, built to take out most of the pain points and boilerplate code. This is a great option if you are interested in using/learning Groovy!

joeslice
A: 

Ant.

Most java online tutorial use Ant as build tool. You can find how it works by reading java tutorial.

You don't have to learn every single command in ANT, just learn a few which are useful :)

janetsmith
+1  A: 

I recommend Hudson as a general build management solution. You configure jobs and we point it at our revision control system to watch for checkins. It has strong java support, but can run any job as the build process, including chaining of jobs together.

caskey
you can run windows or linux shell scripts with hudson, ant and nant, even msbuilt. Pretty much covers any language.
Michael Wiles