Migrate¶
Migrating an existing project to refreshVersions manually is tricky:
- Existing dependencies are ignored because they don’t use the version placeholder
_. - Replacing the hardcoded version with the version placeholder is not what you want, because it has the major side effect to upgrade all your dependencies to whatever is the latest version available.
That’s why we made a Gradle task specifically for migration.
First, ensure you are using the plugin’s latest version:
plugins {
// See https://jmfayard.github.io/refreshVersions
id("de.fayard.refreshVersions") version "0.60.6"
}
plugins {
// See https://jmfayard.github.io/refreshVersions
id 'de.fayard.refreshVersions' version '0.60.6'
}
Migrate semi-automatically¶
The task refreshVersionsMigrate takes care of the migration semi-automatically:
./gradlew refreshVersionsMigrate
Running the task just like that without any parameters will lead to a failure. The error message will tell that the option --mode is required, and it will list all the possible values.
You should see something like this:
> Task :refreshVersionsMigrate
modified: versions.properties
modified: build.gradle.kts
modified: gradle/libraries.gradle
To find available updates, run this:
./gradlew refreshVersions
At that point, you probably want to have a look at the git diff to see what changed and fix/tweak things if needed.
As you can see, depending on the mode you selected, it edits some files in a given way.
For the VersionsPropertiesOnly mode:
- It generates
versions.propertieswith the current version of all dependencies. - It modifies
build.gradle(.kts)files and other files likelibraries.gradleorbuildSrc/src/main/kotlin/Libs.ktknown to contain dependency notations, so that the version placeholder_is used everywhere.
For the VersionCatalogOnly mode:
- It generates
gradle/libs.versions.tomlwith the current version of all dependencies. - It modifies
build.gradle(.kts)files, so that dependency notations everywhere.
For the other modes, you’ll see a combination of the above.
If anything isn’t working well for you, please, give us here your feedback for refreshVersionsMigrate 👍🏼.