Whilst attending JavaOne with IDR Solutions and looking for automated build solutions for our PDF to HTML5 converter, there were a few talks that mentioned different build automation tools, in this article, I intend to give you the rundown on each one.
The main usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test, and run Java applications. Ant is written in Java. Users of Ant can develop their own “antlibs” containing Ant tasks and types, and are offered a large number of ready-made commercial or open-source “antlibs”.
So why Maven and not Ant? Maven features standard file tree conventions, archetype support, automatic inclusion of third-party jars and depository-based third-party jars. However unlike Ant, Maven can be a little trickier to get to grips with, this is because Ant is much simpler than Maven. The most important thing though is that Maven isn’t only a build tool, it also provides a layer of organisation and structure.
Gradle on the other hand combines the best parts of Maven and Ant and it defaults if using the Maven directory layout. It features built-in integration, customisable build logic and tasks are written in Groovy! Gradle also provides declarative language elements that you can assemble however you like. One of the best parts of Gradle is that its suppleness and richness finally allow you to apply common design principles to your build. For example, it is very easy to compose your build from reusable pieces of build logic.
If you want more information on JavaOne 2013 and further coverage of the entire event check out our JavaOne 2013 Series Index, which covers everything that is happening and is constantly updated, keep checking back for new info!