BOM¶
Sandwich publishes several artifacts that must move together. The Bill of Materials pins them all from one place, so only the BOM version has to be updated on a release.
dependencies {
implementation(platform("com.github.skydoves:sandwich-bom:$version"))
implementation("com.github.skydoves:sandwich")
implementation("com.github.skydoves:sandwich-retrofit")
testImplementation("com.github.skydoves:sandwich-test")
}
For Kotlin Multiplatform:
sourceSets {
val commonMain by getting {
dependencies {
implementation(project.dependencies.platform("com.github.skydoves:sandwich-bom:$version"))
implementation("com.github.skydoves:sandwich")
implementation("com.github.skydoves:sandwich-ktor")
implementation("com.github.skydoves:sandwich-ktor-serialization")
}
}
}
The BOM constrains every published artifact:
sandwichsandwich-ktorsandwich-ktor-serializationsandwich-ktorfitsandwich-retrofitsandwich-retrofit-datasourcesandwich-retrofit-serializationsandwich-test
A BOM only supplies versions. It does not add any dependency on its own, so each artifact still has to be declared.