Use sophisticated build tool different to Ant

Registered by Ralf Claussnitzer on 2012-03-06

Apache Buildr https://cwiki.apache.org/confluence/display/BUILDR/Index
=============================================

Apache Buildr is a build system for Java-based applications, including support for Scala, Groovy and a growing number of JVM languages and tools. However, it uses Ruby environment which might provide an adoption barrier. Installing JRuby introduces another runtime layer on top of the JVM.

Gradle http://www.gradle.org/
===================

Gradle is build automation evolved. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else. It uses Groovy Script interpreter which can run directly on the JVM.

Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. Powered by a Groovy DSL and packed with innovation, Gradle provides a declarative way to describe all kinds of builds through sensible defaults. Gradle is quickly becoming the build system of choice for many open source projects, leading edge enterprises and legacy automation challenges.

Maven http://maven.apache.org/
=====================

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

Maven makes adamant rules about the life cycle of a Java project. Additional languages are not supported out-of-the-box. Maven 3 addresses this to some extend. Projects that do not adhere the Maven-Way are difficult to describe in the standard project model. Further issues arise from it's heavy dependency to artifact repositories. Central repositories often lack meta data quality and custom local file system based repositories are hard to include. Maven is a well known quasi-standard for Java projects. However, the inflexible plugin-system and a lack of developer documentation often requires exclusive dedication by a build manager.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

STATE
Gradle build is almost working. Class files can be compiled. Dynamic JSP files still have missing libraries.

Observation
Although, most build tools bring IDE project plugins, those plugins suffer from insufficient support within the IDEs. Maven projects on the other hand, are usually well supported by IDEs.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.