apply plugin: 'com.android.library' apply plugin: 'digital.wup.android-maven-publish' apply plugin: "kotlin-android" apply plugin: 'kotlin-kapt' buildscript { repositories { mavenCentral() } dependencies { classpath "digital.wup:android-maven-publish:$version_android_maven_publish" } } android { compileSdkVersion rootProject.ext.version_android_compile_sdk packagingOptions { resources { excludes += ['META-INF/INDEX.LIST', '**/*.kotlin_metadata', 'META-INF/*.kotlin_module'] } } sourceSets { main.java.srcDirs += ["build/generated/source/door", "../lib-database/src/doorDao/kotlin"] androidTest.assets.srcDirs += files("$projectDir/schemas".toString()) } defaultConfig { minSdkVersion 21 targetSdkVersion 30 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { arguments = [ "room.schemaLocation": "$projectDir/schemas".toString(), "room.incremental" : "true"] } } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' testCoverageEnabled = false testCoverageEnabled = false } } kotlinOptions { jvmTarget = "1.8" } namespace 'com.ustadmobile.port.android.db' } kapt { arguments { arg("room.schemaLocation", "$projectDir/schemas") arg("room.incremental", "true") } } tasks.whenTaskAdded { task -> if(task.name.startsWith("compile") || task.name.startsWith("build")) { task.dependsOn(":lib-database:jvmJar") } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "com.github.UstadMobile.door:door-room-jdbc:$version_door" implementation project(":lib-database-entities") implementation "com.github.UstadMobile.door:door-runtime:$version_door" implementation project(':lib-util') //Kotlin implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version_kotlin" //Repository dependencies implementation "io.ktor:ktor-client-core:$version_ktor" implementation "io.ktor:ktor-client-json:$version_ktor" implementation "io.ktor:ktor-client-okhttp:$version_ktor" implementation "io.ktor:ktor-client-gson:$version_ktor" //ViewModel and LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:$version_androidx_lifecycle" implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$version_kotlinx_serialization" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version_coroutines" //Room persistence implementation "androidx.room:room-runtime:$version_android_room" implementation "androidx.room:room-ktx:$version_android_room" kapt "androidx.room:room-compiler:$version_android_room" //Logging implementation "io.github.aakira:napier:$version_napier" // Paging implementation "androidx.paging:paging-runtime:$version_androidx_paging" implementation "org.nanohttpd:nanohttpd:$version_nanohttpd" implementation "org.nanohttpd:nanohttpd-nanolets:$version_nanohttpd" implementation "androidx.appcompat:appcompat:$version_androidx_appcompat" implementation "androidx.legacy:legacy-support-core-utils:$version_androidx_legacy" //dependency injection implementation "org.kodein.di:kodein-di-framework-android-x:$version_kodein_di" implementation "org.kodein.di:kodein-di:$version_kodein_di" testImplementation "junit:junit:$version_junit" androidTestImplementation "androidx.room:room-testing:$version_android_room" testImplementation "org.robolectric:robolectric:$version_android_roboelectric" androidTestImplementation "androidx.test:runner:$version_android_junit_runner" androidTestImplementation "androidx.test.espresso:espresso-core:$version_android_espresso" } publishing { publications { mavenAar(MavenPublication) { from components.android groupId rootProject.group artifactId project.name version "${rootProject.version}" } } repositories { //Set this in projectdir/extrasettings.gradle maven { url rootProject.ext.buildConfigProperties['repo.dir'] } } }