A new version of project automation software Gradle has been released.
Gradle is described on its website as “build automation evolved”. The creators say it can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites or generated documentation.
Gradle takes the concepts of Apache Ant and Apache Maven and adds a Groovy-based domain-specific language (DSL) rather than using XML.
You can assemble declarative language elements into your own constructs, and the language elements provide build-by-convention support for Java, Groovy, OSGi, Web and Scala projects. It has also been adopted as the build engine in Google's Android Studio which should guarantee it a big user base for the future.
It uses a directed acyclic graph ("DAG") to work out in which order tasks should be run. This is different from Maven, which uses lifecycles, and Ant which constructs targets based on a “depends-on” partial ordering. Because Gradle is aimed at large projects and multiple projects, it has support for incremental builds. This works out which parts of the build tree are up-to-date to avoid executing tasks that fit within the nodes that are up-to-date.
Gradle also supports partial builds. If you build a single subproject Gradle takes care of building all the subprojects that subproject depends on, and you can rebuild just the subprojects that depend on a particular subproject.
This version of Gradle is mainly aimed at Java, Groovy and Scala development and deployment, but more languages and project workflows will be added in the future.
Gradle 2.0 has a simplified codebase as the developers have removed a number of deprecated features and APIs. However, in a post on the Grade community forum, Gradleware engineer Luke Daley, says:
“if your build works with Gradle 1.12 and does not issue any deprecation warnings while building, it is extremely likely that your build will continue to work just fine with Gradle 2.0 and continue to work until Gradle 3.0.”
Members of the IProgrammer team each have their own favorite languages and we try to keep up with all the latest developments. These are the most recent three and as we have nothing to add they are pr [ ... ]