Gradle Newsletter, June 2020 ======== Welcome to the June 2020 Gradle Build Tool newsletter. We hope you stay safe in these difficult times. At Gradle, we are fortunate to work fully remotely and the Coronavirus situation hasn’t slowed us down in delivering new and exciting features for you. This issue features as always some interesting stuff from our incredible community and highlights from recent Gradle Build Tool and Gradle Enterprise releases. ## Plugins - [Dependency Analysis][1] - a new plugin that offers guidance on project dependencies (e.g. unused dependencies and [api vs implementation][2] configuration) - [Kordamp][3] - a new collection of various opinionated plugins - [Nokee][4] - a new set of plugins for building native projects that now provides preliminary iOS support in [0.3 release][5] - [PlantUML][6] - a new plugin that builds [PlantUML][6] diagrams from code - [Rewrite][7] - a new plugin aiming to automatically refactor code by, for example, applying Checkstyle rules - [Spotless][8] - the popular plugin published a [new major release][9] that supports local [build cache][10] - [Spring Boot][11] - the popular plugin published a new version with [various improvements][12] ## Blog Posts - [When to (not) use mavenLocal() in your Gradle build script][13] - discusses the use of project dependencies and [composite builds][14] instead of [mavenLocal()][15] - [Jib: The next big thing to build your Docker images][16] - describes how to build Docker images easily and quickly using the [Jib][17] plugin from Google - [Building a Java Application With Gradle][18] - provides an introductory Gradle tutorial from Baeldung - [Sharing Dependencies and Gradle Plugins between Kotlin/SpringBoot Services][19] - covers dependency sharing and plugins in a multi-repo project using a custom plugin and a [platform][20] - [Stop using Gradle buildSrc. Use composite builds instead][21] - advises on how to achieve faster feedback loops with [composite builds][14] instead of [buildSrc][22] ## Gradle Releases ### Gradle Enterprise 2020.2 and Distributed Testing Gradle Enterprise 2020.2 contains the feature that we have been looking forward to for a long time. The highlight is our new Distributed Testing capability that extends test parallelism by fanning out test execution across many machines. Our customers observe build times decreasing by a factor of 10x. We are starting to use it with our own builds and we are stoked about the results we are seeing. For more information about Gradle Enterprise 2020.2, see [release notes][23].
### Gradle 6.4 Gradle 6.4 is generally available. It was followed by a small patch release 6.4.1, so make sure you use the latest when you upgrade. This release includes highly anticipated support for [building, testing and running Java Modules (JPMS)][24]. It also provides [precompiled Groovy DSL script plugins](precompiled Groovy DSL script plugins) that are a nice new way to write your build code inspired by the equivalent feature in Kotlin DSL. ## Related Releases ### IntelliJ IDEA 2020.1 The recently released IntelliJ IDEA 2020.1 improves the way Gradle projects are refreshed and makes running tests with Gradle much more efficient. ### Android Studio 4.0 Android Studio 4.0 has just been released and brings a new build analyzer window, initial support for Kotlin DSL, and support for several new features in the Android Gradle plugin. ## Upcoming Events * __Jun 19__ 9:00 am PT (3.5 hours): [Training: Gradle Build Cache Deep Dive][25] * __Jul 07-08__ 8:30 am PT (4 hours each day): [Training: Intro to Gradle][26] * __Jul 09__ 9:00 (2.5 hours): [Training: Gradle Build Cache Deep Dive][27] See the [Gradle Training webpage][28] for an up-to-date list of all upcoming educational and training events. ---- _If you have some news you’d like us to share in the next issue, use `#gradle` on Twitter or send us an email with the details to [newsletter@gradle.com][29]._ Until next time! —The Gradle Team -- Gradle Inc. 325 9th Street San Francisco, CA 94103 https://gradle.org (Unsubscribe from future Gradle emails) [1]: https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/wiki [2]: https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation/?utm_source=newsletter&utm_medium=email&utm_campaign=202006 [3]: https://kordamp.org/kordamp-gradle-plugins/ [4]: https://nokee.dev/ [5]: https://nokee.dev/blog/release-0.3-announcement/ [6]: https://github.com/RoRoche/plantuml-gradle-plugin [7]: https://github.com/openrewrite/rewrite-gradle-plugin [8]: https://github.com/diffplug/spotless [9]: https://github.com/diffplug/spotless/blob/gradle/4.0.1/plugin-gradle/CHANGES.md#400---2020-05-17 [10]: https://guides.gradle.org/using-build-cache/?utm_source=newsletter&utm_medium=email&utm_campaign=202006 [11]: https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/ [12]: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes [13]: https://medium.com/decisionbrain/when-to-not-use-mavenlocal-in-your-gradle-build-script-6da03902f9df [14]: https://docs.gradle.org/current/userguide/composite_builds.html [15]: https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven-local [16]: https://ordina-jworks.github.io/docker/2020/05/07/jib.html [17]: https://github.com/GoogleContainerTools/jib/blob/master/README.md [18]: https://www.baeldung.com/gradle-building-a-java-app [19]: https://www.stackhawk.com/blog/sharing-dependencies-and-gradle-plugins-between-kotlin-springboot-services/ [20]: https://docs.gradle.org/current/userguide/java_platform_plugin.html [21]: https://proandroiddev.com/stop-using-gradle-buildsrc-use-composite-builds-instead-3c38ac7a2ab3 [22]: https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:build_sources [23]: https://gradle.com/enterprise/releases/2020.2/ [24]: https://docs.gradle.org/6.4.1/release-notes.html#java-modules [25]: https://gradle.com/training/build-cache-deep-dive/?time=1592524800&utm_source=newsletter&utm_medium=email&utm_campaign=202004 [26]: https://gradle.com/training/introduction-to-gradle/?time=1594080000&utm_source=newsletter&utm_medium=email&utm_campaign=202004 [27]: https://gradle.com/training/developer-productivity-workshop/?time=1594252800&utm_source=newsletter&utm_medium=email&utm_campaign=202004 [28]: https://gradle.com/training/ [29]: mailto:newsletter@gradle.com