We are very excited to announce the release of Gradle 0.6. This release comes with major new features, like:
- an improved DSL and a richer domain model.
- many new listeners to customize your build in a very flexible way.
- TestNG support.
- more control over how multiproject builds are executed
- progress reporting for downloading
- a rule engine for creating rule based tasks
- and much more ...
New and Noteworthy
DSL changes
Testing
We have exciting features in the pipeline for testing (e.g. Custom test listeners even for forked execution and multi-threaded execution). They just didn't make it from trunk to 0.6 but you can expect them for 0.7.
Multi-project builds
- Added switch to disable building of dependent projects (gradle -a). See UG 24.7.1
Dependencies
- A Configuration provides now a rich API that allows for example for copying and copying with filters, dependency search and much more. See UG 21.2.10
- Dependency reports (for example just type gradle -n) See UG 10.2 and UG 21.2.8
- Progress reporting when downloading
Tasks
- If the user executes a task that is not explicitly defined, you can define rules. Those rules analyze the task name and create a synthetic task if the task name obeys to a certain pattern. See UG 12.7
- You can add descriptions to tasks. They are printed out when executing a gradle -t. See UG 12.5
- When you execute multiple tasks at once, they are executed as one build. For example 'gradle compile test' will execute the compile task only once although test depends on compile. See UG 9.1
Lifecycle Listener
- With our new listener API you can get notified when tasks are created, or before and after the tasks execute (including exception handling). You can also get notified for any project that has been evaluated. See UG 23.6.2
Javadoc
- Added a number of properties for configuring javadoc generation. See UG 15.6
Wrapper
- When creating the wrapper files there is now a separate properties file which can be edited. Thus you don't need to recreate the wrapper files when you are changing the wrapper distribution version. You just need to change the properties file. See UG 26.1
Maven
- You can now add a configuration to the Maven deployer (instead of assigning jar files). This configuration gets only resolved if the deploy task is actually executed. This saves time during configuration. See UG 22.5.2
Libs
- We have added a couple of libs which are now in the default classpath. JSch for working with Ivy Ssh repositories. And the jsp jars for working with the Jetty plugin. In a future release (planned is 0.8) we will modularize Gradle based on OSGi and the standard Gradle distribution will become much smaller.
User's Guide
- Our user's guide has grown significantly. We have added many examples. We switched also from LaTeX to Docbook. One result of this is that the user's guide can now be build without any prerequisites. and in particular the HTML version is much nicer. Almost every code snippet in the user's guide is now living code that is at least compiled and most of the time tested for functionality. See also How to build the documentation.
Migrating from 0.5
For a list of breaking changes see: Gradle 0.6 breaking changes
Credits
Many thanks to Steve Appling and his team for all their valuable patches and their feedback. Thanks for their patches also to Tomek Kaczanowski, Niko Schmuck, Marcus Better, Neil Curzon. A special thank to Jon Cox for his amazing command line feature proposal and all his other in-depth comments. Thanks to Phil Messenger for the dependency report contribution. Thanks to Allan Lewis, Collin Yates, Erwan Lacoste, Jaco, Levi Hoogenberg, Mark Swanson, Martin Vlcek, Peter Niederwieser, Peter Voss, Allan Spencer and Szczepan Faber for there Jira's and other feedback.
