Gradle Newsletter, June 2018 ======== Welcome to the June Newsletter! In this issue, we'll cover a [brand-new Gradle release][1], which annotation processors have [gone incremental][2], and Gradle [C++ project support in CLion][3]. In other news, [Gradle is hiring][4] — see details below. ## From the Community Here are some interesting pieces and projects from the past month. - [The story of a Java to Kotlin migration][5] — Lessons learned from JB Nizet migrating sources and Gradle build scripts to Kotlin. - [Generating stubs with Swagger Codegen][6] and [Using a custom template for Swagger Codegen][7] — 2 informative articles using Swagger Codegen and Gradle by Arnold Galovics. - [Implementing an intuitive versioning and release strategy][8] — Ben Muschko walks through versioning and release automation with Gradle and Travis CI. - [Treat your build files as you treat your code][9] — In this blog post, Jarosław Michalik advocates for applying good engineering to your build scripts, specifically calling out a strategy for extracting variables and staying DRY. - [Executing Gradle builds on TeamCity][10] — A JetBrains-contributed Gradle guide walking through TeamCity setup for a typical project. - [google/osdetector-gradle-plugin][11] — Detects the OS name and architecture, providing a uniform classifier to be used in the names of native artifacts. - [commercehub-oss/gradle-avro-plugin][12] — Perform Java code generation using Apache Avro via Gradle. - [tbroyer/gradle-incap-helper][13] — Helper library and annotation processor for building incremental annotation processors. _Have a blog post or plugin you'd like to see featured here? Just send us an email with the details to [newsletter@gradle.com][14]._ ## Gradle 4.8 A shiny new Gradle build tool [release 4.8][1] comes jam-packed with features: - Dependency locking, making builds reproducible even when using dynamic dependencies - New type-safe DSLs to customize POMs or Ivy module descriptors for publishing - Signing plugin support for signing all artifacts of a publication - More robust incremental annotation processing - [Kotlin DSL v0.17][15], featuring faster configuration time and convenient configuration of nested extensions - [Improved Gradle native support][16] allowing better control over system include path and more Read the [full release notes][1] for more details and examples. ## Adopting Incremental Annotation Processing Since Gradle 4.7, several annotation processors have begun declaring support for [incremental annotation processing][17], with Lombok and Android-State leading the way. Users of these libraries should upgrade to their latest versions to get faster builds as they opt-in to incremental compilation. You can follow progress of your favorite annotation processors in [this GitHub issue-turned feature dashboard][2]. ## CLion + Gradle for C++ Projects We are excited to share that [JetBrains CLion 2018.2 EAP][3] includes support for projects that use the [new Gradle C++ plugins][18]. You can try this out with one of [these sample projects][19] or your own and provide feedback via Twitter or [YouTrack for CLion][20]. We think this is a big step forward for enabling better automation of native projects. ## Upcoming online training - Jun 7: [Build Cache Deep Dive][21] - Jun 26-29: [Advanced Gradle Fundamentals for Java/JVM][22] - Aug 7-8: [Introduction to Gradle][23] - Anytime: [Maximizing Developer Productivity with Gradle Enterprise][24] ## Gradle is hiring! You can improve workflow for millions of developers with a _remote-first, flexible, and ambitious team_. Interested? Here's a few of the roles we're looking for right now. - Gradle Enterprise [Android][25], [back-end][26], and [front-end][27] engineering - Gradle build tool [distributed build and dependency management][28] engineering - A [sales development representative][29] to work with marketing and sales teams You can learn more at [gradle.com/careers][4]. Until next time! —The Gradle Team -- Gradle Inc. 325 9th Street San Francisco, CA 94103 https://gradle.org %%unsubscribe%% (Unsubscribe from future Gradle emails) [1]: https://docs.gradle.org/4.8/release-notes.html?utm_source=newsletter&utm_medium=email&utm_campaign=201806 [2]: https://github.com/gradle/gradle/issues/5277 [3]: https://blog.jetbrains.com/clion/2018/05/clion-starts-2018-2-eap-sanitizers-gradle-db-performance/#gradle_cpp_projects [4]: https://gradle.com/careers [5]: https://blog.ninja-squad.com/2018/05/22/kotlin-migration/ [6]: https://blog.arnoldgalovics.com/2018/05/22/generating-stubs-with-swagger-codegen-and-gradle/ [7]: https://blog.arnoldgalovics.com/2018/05/28/using-a-custom-template-for-swagger-codegen-with-gradle/ [8]: http://bmuschko.com/blog/gradle-release-strategy/ [9]: https://proandroiddev.com/treat-your-build-files-as-you-treat-your-code-def80ac52978 [10]: https://guides.gradle.org/executing-gradle-builds-on-teamcity/?utm_source=newsletter&utm_medium=email&utm_campaign=201806 [11]: https://github.com/google/osdetector-gradle-plugin [12]: https://github.com/commercehub-oss/gradle-avro-plugin [13]: https://github.com/tbroyer/gradle-incap-helper [14]: mailto:newsletter@gradle.com [15]: https://github.com/gradle/kotlin-dsl/releases/tag/v0.17.4 [16]: https://github.com/gradle/gradle-native/blob/master/docs/RELEASE-NOTES.md#changes-included-in-gradle-48 [17]: https://docs.gradle.org/current/userguide/java_plugin.html#sec:incremental_annotation_processing?utm_source=newsletter&utm_medium=email&utm_campaign=201806 [18]: https://blog.gradle.org/introducing-the-new-cpp-plugins?utm_source=newsletter&utm_medium=email&utm_campaign=201806 [19]: https://github.com/gradle/native-samples [20]: https://youtrack.jetbrains.com/issue/CPP-12882 [21]: https://gradle.org/training/build-cache/register-2018-06-07/?utm_source=newsletter&utm_medium=email&utm_campaign=201806 "Build Cache Deep Dive" [22]: https://gradle.org/training/advanced-gradle-jvm/register-2018-06-26/?utm_source=newsletter&utm_medium=email&utm_campaign=201804 "Advanced Gradle Fundamentals for Java/JVM" [23]: https://gradle.org/training/intro-to-gradle/register-2018-08-07/?utm_source=newsletter&utm_medium=email&utm_campaign=201806 "Introduction to Gradle" [24]: https://gradle.org/training/developer-productivity-with-gradle-enterprise/register-pre-recorded/?utm_source=newsletter&utm_medium=email&utm_campaign=201803 "Maximizing Developer Productivity with Gradle Enterprise" [25]: https://boards.greenhouse.io/gradle/jobs/1156236 [26]: https://boards.greenhouse.io/gradle/jobs/217786 [27]: https://boards.greenhouse.io/gradle/jobs/206107 [28]: https://boards.greenhouse.io/gradle/jobs/85251 [29]: https://boards.greenhouse.io/gradle/jobs/1168392