December 2022
Table of Contents
Introduction
Welcome to the December 2022 Gradle Build Tool newsletter. This edition covers news from the community and many releases to try, like Gradle 7.6. Plus, Gradle is now the default build system in Spring Initializr, and users can now choose between the Groovy or Kotlin DSL.
From the Community #
Blog posts #
- Evaluate Your afterEvaluate — Describes why you should only use
afterEvaluate
as a last resort. - Saving 5,400 Hours a Year With Gradle’s Configuration Cache — Demonstrates how Square integrated configuration cache to reduce local build times from 182 hours to 25 hours per week.
- Gradle Goodness: Set Project Version in Version Catalog — Depicts how to define the project version via a catalog.
- Gradle Goodness: Configure Test Task With JVM Test Suite — Provides an idiomatic example of configuring the default test task with JVM Test Suite without adding additional types of tests.
- Gradle Goodness: Add Extra Dependencies for Running Tests Using JVM Test Suite Plugin — Shows how to most conveniently add testing dependencies when using JVM test suites
- Single Source of Truth for Your Build Scripts — Takes a deep dive into setting up and configuring an Android project geared for maintainability.
- Tracing Java Dependencies With Gradle — Guides you through the options to understand your dependencies, including how to use
dependencyInsight
. - Achieve Mono-Repo-Like Development Experience in Multi-Repo Android Projects — Provides an example method to use local maven repositories to simplify multi-repo projects (check out composite builds that are also helpful in similar scenarios).
Videos #
- Understanding Gradle #26 – The Classpath — Shares how to work with classpaths and how modularity in Java works.
- Understanding Gradle #27 – Multiple Compile Classpaths — Part 2 of modularity in Java for understanding multiple compile classpaths and dependency scopes.
- Running and Building Gradle With Different JDKs — Provides some quick tips on managing JDKs with SDKMan and toolchains.
- How to Migrate Gradle Groovy to Gradle Kotlin DSL in Android Studio — Shows how to migrate to Kotlin DSL and the differences between using Groovy and Kotlin in your build script.
- Maven vs. Gradle Quickie: Inputs and Outputs — Describes one of the key differences between Gradle and Maven and why Gradle users don’t need to run “clean” builds to ensure correctness.
From Gradle Team #
Blog posts #
- Introducing Public Design Specs — Details on Gradle design specs that are now publicly available for viewing and comments.
- Compilation Avoidance — Describes how Gradle builds automatically avoid calling the compiler to speed up builds.
Releases #
Gradle Build Tool 7.6 #
This release includes building and running code with Java 19, a flag to rerun tasks individually, a new strongly-typed dependencies block for JVM test suites and a pluggable system for Java Toolchains provisioning. See release notes for details or watch the release video highlights.
Gradle Enterprise 2022.4 #
Gradle Enterprise 2022.4 makes class-level faults and bottlenecks in JVM-based tests for Gradle and Apache Maven™ easier to identify and diagnose, increases the predictive accuracy of Predictive Test Selection without sacrificing time savings, and enables programmatic administration of Test Distribution agents. See release notes for details.
Test Retry Gradle Plugin 1.5.0 #
Some of your tests are flaky? The Test Retry Gradle Plugin 1.5.0 plugin causes failed tests to be retried within the same task. After executing all tests, any failed tests are retried. The process repeats with tests that continue to fail until the maximum specified number of retries has been attempted or there are no more failing tests.
This new release now also allows declaring test classes that must be retried as a whole unit, for example, if test methods depend on each other. This can be configured via qualified class name patterns or annotations on the class level.
Gradle Enterprise Gradle Plugin 3.12 #
This release adds built-in support for https://github.com/gradle/develocity-testing-annotations, captures skipReasonMessage
when specified for the task, and includes test retry functionality provided by the Test-Retry Gradle Plugin (above). See release history for details.
Other Releases #
IntelliJ IDEA 2022.3 #
IntelliJ IDEA 2022.3 introduces improvements for working with build.gradle files in Groovy projects and much faster code completion in build.gradle.kts
Careers #
If you share our passion for developer productivity and tooling, consider joining our globally distributed team and check out our job openings at gradle.com/careers. We are looking for software engineers, solutions engineers, an application security engineer, and a new position for a software engineer who wants to become a technical writer.
If you have some news you’d like us to share in the next issue, use #gradle on Mastodon or send us an email with the details to newsletter@gradle.com.
Until next time!
—The Gradle Build Tool Team