はじめに
Gradle5.0から正式にBOM(bill of materials)ファイルの読み込みに対応しました。
まだ提供されているライブラリは多くないですが、このBOMファイルによってライブラリ毎のバージョン定義を省くことができるようになります。
参考: https://docs.gradle.org/5.0/userguide/managing_transitive_dependencies.html#sec:bom_import
Before
dependencies {
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version_kotlin"
implementation "org.jetbrains.kotlin:kotlin-test-junit5:$version_kotlin"
// Firebase
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-storage:16.1.0'
implementation 'com.google.firebase:firebase-config:16.4.1'
implementation 'com.google.firebase:firebase-invites:16.1.1'
implementation 'com.google.firebase:firebase-messaging:17.5.0'
implementation 'com.google.firebase:firebase-firestore:18.2.0'
implementation 'com.google.firebase:firebase-dynamic-links:16.1.8'
implementation 'com.google.firebase:firebase-perf:16.2.4'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'
// OkHttp
def version_okhttp = '3.12.2'
implementation "com.squareup.okhttp3:okhttp:$version_okhttp"
implementation "com.squareup.okhttp3:logging-interceptor:$version_okhttp"
testImplementation "com.squareup.okhttp3:mockwebserver:$version_okhttp"
}
After
dependencies {
// kotlin
implementation platform('org.jetbrains.kotlin:kotlin-bom:1.3.61')
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
implementation 'org.jetbrains.kotlin:kotlin-test-junit5'
// Firebase
implementation platform('com.google.firebase:firebase-bom:16.0.0')
implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-storage'
implementation 'com.google.firebase:firebase-config'
implementation 'com.google.firebase:firebase-invites'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-firestore'
implementation 'com.google.firebase:firebase-dynamic-links'
implementation 'com.google.firebase:firebase-perf'
implementation 'com.crashlytics.sdk.android:crashlytics'
// OkHttp
implementation platform('com.squareup.okhttp3:okhttp-bom:3.12.2')
implementation 'com.squareup.okhttp3:okhttp'
implementation 'com.squareup.okhttp3:logging-interceptor'
testImplementation 'com.squareup.okhttp3:mockwebserver'
}
Kotlin Libraries Bill of Materials: https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-bom
Firebase BOM: https://mvnrepository.com/artifact/com.google.firebase/firebase-bom
OkHttp (Bill of Materials): https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp-bom