Skip to content

Releases: gradle/gradle

3.4.1

03 Mar 20:01
Compare
Choose a tag to compare

Gradle 3.4.1 is now available

This bug-fix release addresses uncaught regressions in v3.4.0 in the Java incremental compilation.

Fixed issues:

Upgrade Instructions

Switch your build to use Gradle 3.4.1 by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.4.1

Standalone downloads are available at https://gradle.org/gradle-download.

Reporting Problems

If you find a problem with Gradle 3.4.1, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.4

20 Feb 15:30
Compare
Choose a tag to compare
3.4

Gradle 3.4 is now available

We're excited to bring you 3 incredible performance features in this release.

First up: Compile Avoidance. We've introduced a new mechanism for up-to-date checking of Java compilation that is sensitive to public API changes only. This means that if you change a comment or even a private API in a downstream project, Java compilation for upstream projects will be UP-TO-DATE.

Next: A stable incremental Java compiler. We've smartened the handling of constants, backed it with in-memory caches, and fixed many bugs. It is now production-ready for your build and has been promoted out of @Incubating.

Finally: A brand new Java Library Plugin. Use this when building a component intended to be used as a dependency from another project. It provides a strong separation between public (exported) and private code which not only gives great performance benefits (because consumers' compile classpaths are smaller), but also an architectural tool for library authors.

Put these together on our perf-enterprise-large benchmark Java project, and compilation time after a method body change is reduced from 2.5 minutes to 9 seconds! Let's put that in perspective:
screen shot 2017-01-25 at 1 59 07 pm

It is not just large projects that reap the benefits, for example the same use case for Apache Polygene was reduced from 14 seconds to 7 seconds. Huge kudos to our performance team for delivering such massive performance improvements with this release.

You can learn more in this blog post about incremental compilation, compile avoidance and other performance features of Gradle 3.4.

Now, with your help and guidance we've been able to made a couple of highly-requested code-quality plugins improvements:

  • The JaCoCo plugin now allows you to enforce code coverage metrics and fail the build if they're not met.
  • The default version of JaCoCo used by the JaCoCo plugin has been raised and the plugin is now Java 9-ready.
  • The Checkstyle plugin now allows a maximum number of warnings or errors to be configured.

A special thank you to those who voted and contributed to these issues.

The community's voice clearly indicated the need for verifying JaCoCo code coverage metrics. The JaCoCo plugin in Gradle 3.4 verifies code coverage metrics and will fail the build if code coverage falls below a configurable threshold. The plugin is also fully prepared to run on Java 9.

Last but not least, we've made it more convenient to let Gradle know when you want a build scan — just use --scan (or --no-scan if not). No need for the "magic" system property -Dscan.

We hope you're able to build happiness with Gradle 3.4, and we look forward to your feedback via Twitter or on GitHub and sharing other amazing features in 2017. Happy new year from the Gradle team!

Check the full 3.4 release notes for more information.

Upgrade Instructions

Switch your build to use Gradle 3.4 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.4

Standalone downloads are available at https://gradle.org/releases.

Reporting Problems

If you find a problem with Gradle 3.4, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.4 RC3

13 Feb 15:22
Compare
Choose a tag to compare
3.4 RC3 Pre-release
Pre-release

Gradle 3.4 RC3 is now available for testing

This release candidate contains a few bug fixes reported against 3.4 RC2.

  • #1347: Compile classpath snapshotting and annotation processor detection should handle irrelevant files
  • #1351: Add "unresolvable configurations" to the breaking changes section of the release notes of 3.4
  • #1358: Compile classpath snapshotting should be lenient with broken jars/class files
  • #1359: Lenient compile classpath snapshotting
  • #1371: Gradle 3.4-rc-1+ handling of transative dependencies is non-passive

Check the release notes for more information. If no regressions are reported, a final release will typically follow in the next week.

Upgrade Instructions

Switch your build to use Gradle 3.4 RC3 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.4-rc-3

Standalone downloads are available at https://gradle.org/release-candidate.

Reporting Problems

If you find a problem with Gradle 3.4 RC3, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.4 RC2

06 Feb 22:12
Compare
Choose a tag to compare
3.4 RC2 Pre-release
Pre-release

Gradle 3.4 RC2 is now available for testing

This release candidate contains a few bug fixes reported against 3.4 RC1.

  • #1312: Deprecate DependOptions
  • #1300: Promote CompileOptions.incremental out of incubating status
  • #1299: Deprecate CompileOptions.dependOptions
  • #1274: Classloading regression when using ClosureTaskActions

Check the release notes for more information. If no regressions are reported, a final release will typically follow in the next week.

Upgrade Instructions

Switch your build to use Gradle 3.4 RC2 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.4-rc-2

Standalone downloads are available at https://gradle.org/release-candidate.

Reporting Problems

If you find a problem with Gradle 3.4 RC2, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.4 RC1

26 Jan 16:50
Compare
Choose a tag to compare
3.4 RC1 Pre-release
Pre-release

Gradle 3.4 RC1 is now available

We're excited to bring you 3 incredible performance features in this release.

First up: Compile Avoidance. We've introduced a new mechanism for up-to-date checking of Java compilation that is sensitive to public API changes only. This means that if you change a comment or even a private API in a downstream project, Java compilation for upstream projects will be UP-TO-DATE.

Next: A stable incremental Java compiler. We've smartened the handling of constants, backed it with in-memory caches, and fixed many bugs. It is now production-ready for your build and has been promoted out of @Incubating.

Finally: A brand new Java Library Plugin. Use this when building a component intended to be used as a dependency from another project. It provides a strong separation between public (exported) and private code which not only gives great performance benefits (because consumers' compile classpaths are smaller), but also an architectural tool for library authors.

Put these together on our perf-enterprise-large benchmark Java project, and compilation time after a method body change is reduced from 2.5 minutes to 9 seconds! Let's put that in perspective:
screen shot 2017-01-25 at 1 59 07 pm

It is not just large projects that reap the benefits, for example the same use case for Apache Polygene was reduced from 14 seconds to 7 seconds. Huge kudos to our performance team for delivering such massive performance improvements with this release.

Now, with your help and guidance we've been able to made a couple of highly-requested code-quality plugins improvements:

  • The JaCoCo plugin now allows you to enforce code coverage metrics and fail the build if they're not met.
  • The default version of JaCoCo used by the JaCoCo plugin has been raised and the plugin is now Java 9-ready.
  • The Checkstyle plugin now allows a maximum number of warnings or errors to be configured.

A special thank you to those who voted and contributed to these issues.

The community's voice clearly indicated the need for verifying JaCoCo code coverage metrics. The JaCoCo plugin in Gradle 3.4 verifies code coverage metrics and will fail the build if code coverage falls below a configurable threshold. The plugin is also fully prepared to run on Java 9.

Last but not least, we've made it more convenient to let Gradle know when you want a build scan — just use --scan (or --no-scan if not). No need for the "magic" system property -Dscan.

We hope you're able to build happiness with Gradle 3.4, and we look forward to your feedback via Twitter or on GitHub and sharing other amazing features in 2017. Happy new year from the Gradle team!

Check the full 3.4 RC1 release notes for more information. If no regressions are reported, a final release will typically follow in the next week.

Upgrade Instructions

Switch your build to use Gradle 3.4 RC1 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.4-rc-1

Standalone downloads are available at https://gradle.org/gradle-download.

Reporting Problems

If you find a problem with Gradle 3.4 RC1, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.3

03 Jan 15:55
075893a
Compare
Choose a tag to compare
3.3

Gradle 3.3 is now available

This release of Gradle makes the gradle tasks report much faster for medium-to-large projects. By default, gradle tasks will now only display tasks which have been assigned a task group.
For example, execution time was reduced from 554 seconds to 3 seconds on our perf-enterprise-large benchmark projectover 100x faster!
See the technical details on how and why this change was made in the full release notes.

It is now possible to compile native applications using Visual Studio 2015. Gradle will locate the Universal C Runtime required by the Visual C++ toolchain.

Kotlin build script support has further improved with significantly faster startup performance, increased API parity with Groovy-based build scripts, and better interoperability with Groovy plugins. See the gradle-script-kotlin v0.5.0 release notes for details.

Scala compilation startup time in large multi-project builds has been improved through enhancements to Gradle's integration with the Zinc Scala compiler. In earlier versions of Gradle, builds with many Scala projects could timeout and fail when building in parallel.

Tooling API generates more progress events. This means that IDEs will show a much clearer picture of what Gradle is doing during the configuration phase, resolving dependencies, and using composite builds. Details and pictures in the full release notes.

The Gradle GUI has been deprecated and will be removed in Gradle 4.0. An IDE which provides a UI for Gradle — IntelliJ IDEA, Eclipse, or NetBeans, for example, is recommended.

Check the full 3.3 release notes for more information.

Upgrade Instructions

Switch your build to use Gradle 3.3 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.3

Standalone downloads are available at https://gradle.org/gradle-download.

Heads up: In addition, if you previously generated the wrapper with Gradle 3.2, re-run ./gradlew wrapper to avoid a misconfigured wrapper script.

Reporting Problems

If you find a problem with Gradle 3.3, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.3 RC1

19 Dec 16:36
Compare
Choose a tag to compare
3.3 RC1 Pre-release
Pre-release

Gradle 3.3 RC1 is now available

This release of Gradle makes the gradle tasks report much faster for medium-to-large projects. By default, gradle tasks will now only display tasks which have been assigned a task group.
For example, execution time was reduced from 554 seconds to 3 seconds on our perf-enterprise-large benchmark projectover 100x faster!
See the technical details on how and why this change was made in the full release notes.

It is now possible to compile native applications using Visual Studio 2015. Gradle will locate the Universal C Runtime required by the Visual C++ toolchain.

Kotlin build script support has further improved with significantly faster startup performance, increased API parity with Groovy-based build scripts, and better interoperability with Groovy plugins. See the gradle-script-kotlin v0.5.0 release notes for details.

Scala compilation startup time in large multi-project builds has been improved through enhancements to Gradle's integration with the Zinc Scala compiler. In earlier versions of Gradle, builds with many Scala projects could timeout and fail when building in parallel.

Tooling API generates more progress events. This means that IDEs will show a much clearer picture of what Gradle is doing during the configuration phase, resolving dependencies, and using composite builds. Details and pictures in the full release notes.

The Gradle GUI has been deprecated and will be removed in Gradle 4.0. An IDE which provides a UI for Gradle — IntelliJ IDEA, Eclipse, or NetBeans, for example, is recommended.

Check the full 3.3 RC1 release notes for more information. If no regressions are reported, a final release will typically follow in the next week.

Upgrade Instructions

Switch your build to use Gradle 3.3 RC1 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.3-rc-1

Standalone downloads are available at https://gradle.org/gradle-download.

Heads up: In addition, if you previously generated the wrapper with Gradle 3.2, re-run ./gradlew wrapper to avoid a misconfigured wrapper script.

Reporting Problems

If you find a problem with Gradle 3.3 RC1, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.2.1

22 Nov 20:22
Compare
Choose a tag to compare

Gradle 3.2.1 is now available

This bug-fix release addresses uncaught regressions in v3.2.0 in the Gradle wrapper.

Fixed issues:

  • GRADLE-3582: Gradle wrapper fails to escape arguments with nested quotes
  • GRADLE-3583: Newlines in environment variables used by the wrapper breaks application plugin shell script

Upgrade Instructions

Switch your build to use Gradle 3.2.1 by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.2.1

Standalone downloads are available at https://gradle.org/gradle-download.

Heads up: In addition, if you generated this wrapper with Gradle 3.2, re-run ./gradlew wrapper to avoid a misconfigured wrapper script.

Reporting Problems

If you find a problem with Gradle 3.2.1, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.2

14 Nov 12:57
Compare
Choose a tag to compare
3.2

Gradle 3.2 is now available

It's a relatively quiet release this time around, but there are still plenty of reasons to upgrade.

Perhaps the most significant improvements are in the incremental build support, which now has better up-to-date checking for Java compilation, copying, and archiving. You can also have Gradle treat any task input as a classpath with the new @Classpath annotation.

Users of Gradle's native build support gain an important tool in this release. Many of you will be familiar with the buildDependents task for classic multi-project builds. This is now available in native builds as well via new assembleDependents and buildDependents tasks. These are incredibly useful for determining whether your changes have adversely impacted anything that depends on them.

If you use an IDE and have a lot of dependencies in your build—particular dynamic ones—you may have experienced long import times. The underlying issue has been fixed in this release, resulting in significantly improved import times. One example enterprise build showed a 100-fold improvement!

Our users trialing the Kotlin build script support will be glad to hear that progress continues apace with support for multi-project builds. And it's easier to try this feature on Windows now that a bug in compiling scripts on that platform has been fixed.

The last change we want to bring to your attention has been a long time coming and will affect a large number of builds: the shortcut syntax for declaring tasks (via <<) has now been deprecated. The eagle-eyed among you will notice that the user guide examples have been updated to use doLast() and we strongly recommend that you follow suit. This feature will be removed in Gradle 5.0! See the deprecations section of the release notes for more details.

Check the full 3.2 release notes for more information.

Upgrade Instructions

Switch your build to use Gradle 3.2 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.2

Standalone downloads are available at https://gradle.org/gradle-download.

Reporting Problems

If you find a problem with Gradle 3.2, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

3.2 RC3

07 Nov 16:09
5d11ba7
Compare
Choose a tag to compare
3.2 RC3 Pre-release
Pre-release

Gradle 3.2 RC3 is now available for testing

This release candidate contains a few bug fixes reported against 3.2 RC2.

  • GRADLE-3579: Generated scripts in Gradle 3.2 spawn child processes
  • GRADLE-3580: IntelliJ Gradle import does not resolve sources for dependencies
  • GRADLE-3581: Build fails for Kotlin project with multi-level project dependencies

Check the release notes for more information. If no regressions are reported, a final release will typically follow in the next week.

Upgrade Instructions

Switch your build to use Gradle 3.2 RC3 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=3.2-rc-3

Standalone downloads are available at https://gradle.org/release-candidate.

Reporting Problems

If you find a problem with Gradle 3.2 RC3, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

Known Issues