How to import Room Persistence Library to an Android project
I recently saw the new feature announced on Google I/O Room Persistence Library to work with Sqlite databases on Android. I have been looking to the official documentation and I don't find which dependencies I should import to my gradle file on my Android project. Someone can give me a hand?
It's possible to find the dependencies on the example codelab for the new architecture components.
Root :
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
For Room:
implementation 'android.arch.persistence.room:runtime:1.0.0-alpha1'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha1'
For Lifecycle dependencies:
implementation 'android.arch.lifecycle:extensions:1.0.0-alpha1'
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha1'
Adding Rxjava2 objects as result for our queries:
implementation 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'
Test migrations:
testImplementation'android.arch.persistence.room:testing:1.0.0-alpha1'
On your project root build.gradle
you have to add Google's maven repository:
allprojects {
repositories {
jcenter()
maven {
// For Room Persistence Library
url "https://maven.google.com"
}
}
}
And then on the build.gradle
of the Module you should add:
compile 'android.arch.persistence.room:runtime:1.0.0-alpha1'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha1'
compile 'android.arch.lifecycle:extensions:1.0.0-alpha1'
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha1'
compile 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'
testCompile'android.arch.persistence.room:testing:1.0.0-alpha1'
Add this if you want to use RxJava2 Publisher
and Flowable
objects as a result of your queries
compile 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'
And finally add also this dependency to test migrations
testCompile'android.arch.persistence.room:testing:1.0.0-alpha1'
Update: The libraries are still marked as Alpha1 so I guess the version number will be updated soon, maybe using have been updated and as definded on the documentation you can use 1.0.+
until there is a final version could be a good idearoom 1.1.1
using this dependencies:
dependencies {
def room_version = "1.1.1"
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version" // use kapt for Kotlin
// optional - RxJava support for Room
implementation "android.arch.persistence.room:rxjava2:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "android.arch.persistence.room:guava:$room_version"
// Test helpers
testImplementation "android.arch.persistence.room:testing:$room_version"
}
open build.gradle(Project: projectName) and add this lines if it doesn't exist.
This enables access to google repository
allprojects {
repositories {
jcenter()
google()
}
}
next open build.gradle(Module:app) and add this two lines to existing dependencies
For Java
def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
For Kotlin
paste this line outside of the dependencies or android scope at the top where kotlin plugins are applied
apply plugin: 'kotlin-kapt'
add this lines to dependencies
def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
to keep yourself updated with the recent dependencies version visit mvn repository for room
here you will find the latest version.