This Week in Gradle (2012-6)

(Hans Dockter) #1

We are very excited that the Spring-Core framework has moved to Gradle. A number of other Spring projects have migrated to Gradle before. Yet having the core of such an important Java enterprise technology to be built with Gradle is very special. Many thanks to our friends at SpringSource, particularly Chris Beams, for their invaluable feedback to make Gradle a better tool. SpringSource has always been a beacon for me in regard to software craftsmanship. This move means a lot to us.

Plugin Updates

The 2.9.0M2 STS milestone is available with an improved Gradle plugin for Eclipse.

Version 0.4.1 of the GradleFx Flex plugin is available.

Benjamin Muschko released a version 0.2 of the Gradle Java2HTML plugin.

Andrew Oberstar published a Gradle Git and Github plugin. It is based on an idea from Peter Ledbrook who wrote a couple of Gradle tasks for working with Git. They use pure Java, so no dependencies on the git commands.

Eric Wendelin released version 0.3 of the Gradle Javascript plugin with JSDoc 3 support and a couple bug fixes.

Gradle Posts Alexej Bondarenko blogged about setting up Lift with Gradle (in German).

Eveoh blogged about using Gradle with the Google Web Toolkit.

Michael Prader followed up on an earlier posting on how to build jaxb classes with Gradle from an XML Schema. Michael also blogged about creating batch and assembly libraries.

John Holland blogged about why he choose Gradle for the project he was consulting. John also wrote about adding a Web Module to a Gradle/

Gunnar Hillert set up the Sonar metrics page for Spring integration The metrics are created by the Gradle Sonar plugin.

A reminder from Sonatype. To take away pressure from Maven Central and preserve a good quality of service, use a repository manager like Artifactory or Nexus as a proxy. Our thanks to Sonatype for providing the Maven Central service.

Scott Andrews wrote a quick and dirty Gradle task for deploying Cloud Foundry.

In the Gradle build itself there is now a basic Gradle task for uploading to Amazon S3. Anyone wants to turn this into a Gradle S3 plugin? Ping us in the forums.

*** If you want to keep up with these “This Week in Gradle” posts you can access them directly via their tag link or in an RSS reader with the feed for just these posts. ***

##Gradle Development (by Adam Murdoch)

This week we made a Gradle 1.0-milestone-8 snapshot available. Please give this snapshot a try.

We also have put together our plan for the Gradle 1.0 release. Please have a read and let us know what you think.

Some development highlights this week:

  • Added new PMD, FindBugs, JDepend code quality plugins. Thanks to Andrew Oberstar for these excellent contributions. * Added an initial reporting DSL. For now, this is only used by the code plugins, but over time we will wire in the test and project reports. This DSL is the starting point for some nice reporting features in Gradle to come in the future, such as an equivalent of the maven site plugin and other goodies. * Added a new backend for the Java Compile task type, which bolts directly onto the Java compiler APIs rather than using the Ant javac task. This backend is quite a bit faster than the Ant based backend, doesn’t have any command-line length limitations on windows, and will allow us to later add all kinds of interesting features, such as real incremental compilation, and more accurate classpath change detection. And this means faster builds. At the moment, the new backend is disabled by default. * You can now specify the java home that your build should use without needing to mess with environment variables. * Better feedback when things go wrong with the daemon, such as the daemon failing to start or crashing. * Many new additions to the user guide, covering the tooling api, daemon, troubleshooting, the wrapper and dependency caching. * Lots of bug fixes, big and small, in various areas.

What’s next?

This week we plan to release 1.0-milestone-8, then finish up the final features before Gradle 1.0:

  • Enable the new compile task backend by default. This will include a nice reuse feature, where Gradle will attempt to shared forked compile processes across multiple compile tasks. This way you get the isolation and cross-compilation capabilities of forking compilation, with the performance of non-forking compilation. * Wire up the ‘gradle’ and ‘gradlew’ commands to honor the new ‘org.gradle.jvmargs’ and ‘org.gradle.javahome’ properties, which are already used by the daemon and the tooling API. This way, you will have a consistent way to control the build environment, in a configuration file that you can check into source control.

Interesting Tweets * @thetaytay (Taylor Brown): @SlevinBE Huge ant scripts are getting replaced with 6 lines of Gradle/Groovy. It’s awesome. :slight_smile: * @thetaytay (Taylor Brown): @stevendick @SlevinBE Loving GradleFx to build my Flex/AIR app! Gradle is awesome, and GradleFX makes it even better! * @kohsukekawa (Kohsuke Kawaguchi): Coming soon to #JenkinsCI XTrigger: #Gradle trigger * @detonator413: @nzhiltsov I’ve been using gradle for half a year, and will never switch to maven again :slight_smile: * @adamse: RT @robmcguinness: didn’t realize @heroku supported #gradle. nice! adios maven. * @tim_yates: pushing for using gradle with custom plugins as the controller for our bioinformatics pipelines. * @eddgrant (Edd Grant): Really pleased to see #Spring 3.2 will now be built using #Gradle, confidence amongst those in the know is clearly high. This pleases me! * @catapultit (Catapult): … and we will add a gradle task that watches and compiles your source templates offline (compass users, you know what we’re talking about) * @catapultit (Catapult): … and we are moving to Gradle * @puffybsd (puffybsd): @bcoders, my exp has been that #gradle has been simpler, more flexible, less painful than any other build tool I’ve tried. * @pniederw (Peter Niederwieser): #Gradle CI builds run on Java 5, 6, 7, OpenJDK, Sun/Oracle JDK, IBM JDK, Windows, Linux, esoteric OS. We are getting serious… * @hwstrbk (Hans Westerbeek): as useful as #maven has been to many of my projects, you really dont want to go back after using #Gradle. * @msgilligan (Sean Gilligan): #Gaelyk 1.1 with #Gradle rocks: #iUI #GAE

Gradle Jobs

Dice keyword search for Gradle

Monster keyword search for Gradle

Careerbuilder keyword search for Gradle

Gradle Events

We now have a new Gradle events page at Please let us know about any Gradle event we might not be aware of.