New major version 5.0.0 of gradle-download-task

Today, I’m happy to announce the new major version 5.0.0 of the popular gradle-download-task. With this Gradle plugin, you can download files in your build scripts and display progress information. The release notes for the new version are rather extensive this time. Highlights include downloading multiple files in parallel, concurrent execution with other build tasks, and better support for Kotlin and Gradle 8 (see full list of changes below). Updating is recommended for all users.

Grab gradle-download-task 5.0.0 while it’s still hot:
https://github.com/michel-kraemer/gradle-download-task

The new version has been tested with Gradle 5.0 up to 7.3.3 but should be compatible to any newer version as well.

New features

  • The plugin can now download multiple files in parallel
  • Download tasks can now be executed concurrently with other build tasks
  • Writing to disk is performed asynchronously (and therefore in parallel to the download)
  • The destination file name is displayed in the progress message
  • The plugin logs retry attempts
  • It retries downloads on any exception but UnknownHostException
  • The download and verify extensions are now compatible with Kotlin and Gradle 8
  • Support for lazy evaluation of Kotlin lambdas has been added
  • Kotlin example build scripts have been added

Breaking changes

  • The plugin now requires Java 8 (or higher) and Gradle 5 (or higher)
  • The authScheme property has been removed. The plugin is now able to detect the required scheme itself.
  • Due to incompatibility with Gradle 8, the download and verify extensions now need to be called through their run method.
  • Further information can be found in the migration guide below

Maintenance

  • Integration tests for all Gradle versions up to 7.3.3 have been added
  • Gradle has been upgraded to 6.9.1
  • Apache HttpClient has been upgraded to 5.1.2
  • The tests have been migrated to JUnit 5 and AssertJ
  • JaCoCo has been enabled for testkit tests
  • JUnit test reports are now uploaded on failure on the CI server
  • Functional tests are now executed for all Gradle versions from the build script

Others

  • The README file has been improved
  • There is a cool new screencast 😎

Migrating from version 4.x to 5.x

gradle-download-task 5.0.0 introduces the following breaking changes:

  • The authScheme property has been removed. The plugin now automatically detects the correct scheme to use based on the server response.
  • The download extension was incompatible with Gradle 8. Also, using it from Kotlin build scripts was rather inconvenient. It is therefore now necessary to call the extension through its run method. Replace download { … } with download.run { … }. The same applies to the verify extension.

More information

If you want to learn more about the plugin, have a look at its README file or at my earlier post.

I also strongly advice you to read my blog post on 10 recipes for gradle-download-task to get an idea what you can do with the plugin.

If you or your company use any of my projects or like what I’m doing, please consider sponsoring me so I can continue maintaining and developing my projects and new ones!

Thank you so much for your support!

Profile image of Michel Krämer

Sponsor Michel Krämer on GitHub Sponsors

Researcher, software developer, musician, and photographer. I love open source 🥳


Profile image of Michel Krämer

Posted by Michel Krämer
on 29 January 2022


Next post

Spamihilator 1.7 has been released!

Eight years after the last update, I’m very happy to announce a new version of my free spam filter Spamihilator! This version is a maintenance release. It fixes some minor bugs and improves security.

Previous post

Enable GPU to speed up slow Playwright tests in headless mode

If you run your Playwright tests in headless mode, chances are your browser uses a slow software renderer. This post explains how you can speed up your tests by enabling hardware acceleration.

Related posts

10 recipes for gradle-download-task

gradle-download-task is a Gradle plugin that allows you to download files during the build process. This post summarizes common patterns and use cases of gradle-download-task and provides useful tips and tricks.

New features in gradle-download-task 3.4.0

Version 3.4.0 of the popular Gradle plugin contains many new features. Highlights are the support for ETags and downloading to a temporary file. The update also contains various other improvements.

Build Scala projects with Eclipse Buckminster

Buckminster is a tool to build Eclipse RCP applications. It contains a lightweight Eclipse SDK and features but no means to build Scala projects yet. This post tries to bridge this gap.