Gradle Resources
I am gathering a solid list of resources for learning Gradle fundamentals and advanced features in case you will have too much free time during the quarantine, or you have a plan to solidify your Gradle knowledge. Every resource will come with a short review.
I will start with most important resources and expand the list over time and update it especially in regard to upcoming webinars conferences and other events.
Stack Overflow
I don’t need to introduce Stack Overflow to you. If you get stuck at any point working on your build process with Gradle, don’t hesitate to take time and first scan Stack Overflow as somebody might have exact same issue and already got an answers that can help you out more or less. On the other hand it will help you understand the problem more, as you will have to materialize your frustration in a written question form. During this process you might figure out what was actually your problem, or end up with even more questions, acknowledging that you know less that first imagined.
On the other spectrum it offers you to share your knowledge with fellow developers. Train your brain muscle and in next 5 days try to answer a Gradle question per day. It’s also a good way to evaluate your existing Gradle knowledge. Could you answer anything? Nothing? Almost everything?
Make a dent in the universe with answering questions tagged with [gradle].
People
Following is the collection of important people that help share the knowledge about Gradle building tool. They are writing blogs, sharing tweets, writing books, contributing to the open source software projects. At the same time I would like to thank them for making my everyday hustle less painful, kudos.
Benjamin Muschko
Consultant and trainer who in my opinion wrote the best book about Gradle, Gradle in Action. Have him on the radar. Check blog, his talks, and follow him on Twitter.
Hubert Klein Ikkink - mrhaki
Has written at least 3 books about Gradle (Gradle Effective Implementation Guide, Gradle Dependency Management, Gradle Effective Implementation Guide). On his blog you can find Gradle articles dating back to 2015.
Tom Gregory
His webpage contains broad source of Gradle topics. Mostly his articles are accompanied by the YouTube tutorials. He even provides free Gradle course. To be up to date and sharp about Gradle and other DevOps tools you should subscribe to his newsletter.
If you would like to pin additional resource here just ping me at [email protected]
Concepts
Composite Builds
Composite Builds is a feature introduced in Gradle 3.1 to provide a way to decompose large multi-project builds into smaller, more isolated chunks that can be worked in independently or together as needed.
Plugins
-
Brief how to on building custom binary Gradle plugins with Kotlin. Nicely explained artifacts and plugin ID definition. Writing own extensions or using properties. Writing custom tasks, caching them. Testing. Understanding Gradle and writing your own Gradle Plugin (2019)
-
Short tutorial shows how to create rudimentary precompiled script plugin and publish it on Gradle Plugin Portal Precompiled Plugin Publishing Kotlin (2020) - Mikhail Yakushin
-
Testing Precompiled script plugin example in Kotlin. GradleRunner. Creating test project and checking results of the tasks. Testing Gradle precompiled script plugins (2020) - Mikhail Yakushin
-
Basic explanation on how to create a binary plugin with extensions and Maven build tool. Writing Custom Gradle Plugins 2020 - Baeldung
-
Gradle Plugin Tutorial for Android: Getting Started (2021 - raywenderlich)
-
Gradle and AGP Build APIs: How to write a plugin - MAD Skills (2021) - AndroidDevelopers
-
Introduction to writing Gradle plugins (2020 - Tom Gregory Tech)
Overwrite transitive plugin version
If you are applying a plugin that itself transitively imports specific version of external plugin there is a way of how you can overwrite that version:
-
Override external plugin version in precompiled script plugin - SO
-
Using an Extra Property to define a Java dependency version in Plugin
Other
Videos
Droidcon
Droidcon has a list of resources that you can filter out by the keywords. So searching for Gradle you will be able to find blog posts and videos on Android Gradl builds. Droidcon Gradle resources
Podcasts
Lead by Josh Long itself, a bit of advertisement for REST Docs. Maven is default supported build tool for Spring. Gradle as default build tool for Android. Talks bout definition of Gradle plugins. Internal plugins vs publishing binary plugin for public usage. Process of developing a Gradle plugins. Most common plugins. Spring boot gradle plugins. Maven vs Gradle. Great support in IntelliJ. Groovy vs Kotlin. A Bootiful Podcast: Gradle Developer Advocate Jenn Strater (2019)