refreshVersions plugin targets all kinds of Gradle projects, including the following:
Kotlin/JS, Kotlin/JVM, Kotlin/Native
refreshVersions Gradle plugin brings the following benefits:
Centralizes dependencies versions (very useful in multi-module projects)
Shows available updates in seconds
Allows applying the available updates with minimal effort
Brings autocomplete for select dependencies (you can add yours too)
Why (the problem this project solves)
Gradle multi-module projects are on the rise because of how it enforces code decoupling, which is a good thing for maintenance and inevitable changes.
Unfortunately, that means the number of build files (
build.gradle[.kts]) are multiplied,
which makes upgrading the dependencies versions where significantly more tedious as you now
need to open, edit and check more files.
Also, some library vendors like Google are publishing artifacts with different versions (AndroidX, Google Play Services and Firebase, just to name a few). AndroidX for example has about 70 different families with different versions overall.
We saw this made developers to update the dependencies less and less often, effectively leading to legacy accumulation (a form of technical debt), or even projects abandon.
We firmly believe the modularization benefits should not be hindered by these drawbacks. That’s how refreshVersions was born.
We want discovery of dependencies updates to be as quick as possible, we want applying these
updates be as quick as possible through the whole codebase, and we want to remove the human
error factor in dependencies declaration and update.
That’s exactly what
refreshVersions can already do today in your project.
Bonus: tips for your Gradle projects
Good documentation can also help you upgrade an old project to the latest and greatest.
I have a series of articles called
Built with Gradle:
To get the future tips and informative articles, you can follow me on dev.to.
See the CHANGELOG.md file.
This project has sponsors that help the maintainers dedicate more time to this project and keep it updated.
Thanks a lot to them!
You can see them all here.