1plugins { 2 id "maven-publish" 3 4 id "com.android.library" 5} 6 7description = 'gRPC: Android' 8 9android { 10 namespace 'io.grpc.android' 11 compileOptions { 12 sourceCompatibility JavaVersion.VERSION_1_8 13 targetCompatibility JavaVersion.VERSION_1_8 14 } 15 compileSdkVersion 33 16 defaultConfig { 17 consumerProguardFiles "proguard-rules.txt" 18 minSdkVersion 19 19 targetSdkVersion 33 20 versionCode 1 21 versionName "1.0" 22 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 23 } 24 lintOptions { abortOnError true } 25 publishing { 26 singleVariant('release') { 27 withSourcesJar() 28 withJavadocJar() 29 } 30 } 31} 32 33repositories { 34 google() 35 mavenCentral() 36} 37 38dependencies { 39 api project(':grpc-core') 40 implementation libraries.guava 41 testImplementation project('::grpc-okhttp') 42 testImplementation libraries.androidx.test.core 43 testImplementation libraries.junit 44 testImplementation (libraries.robolectric) { 45 // Unreleased change: https://github.com/robolectric/robolectric/pull/5432 46 exclude group: 'com.google.auto.service', module: 'auto-service' 47 } 48 testImplementation libraries.truth 49} 50 51tasks.register("javadocs", Javadoc) { 52 source = android.sourceSets.main.java.srcDirs 53 classpath += files(android.getBootClasspath()) 54 classpath += files({ 55 android.libraryVariants.collect { variant -> 56 variant.javaCompileProvider.get().classpath 57 } 58 }) 59 options { 60 // Disable JavaDoc doclint on Java 8. 61 if (JavaVersion.current().isJava8Compatible()) { 62 addStringOption('Xdoclint:none', '-quiet') 63 } 64 } 65} 66 67tasks.register("javadocJar", Jar) { 68 dependsOn javadocs 69 archiveClassifier = 'javadoc' 70 from javadocs.destinationDir 71} 72 73tasks.register("sourcesJar", Jar) { 74 archiveClassifier = 'sources' 75 from android.sourceSets.main.java.srcDirs 76} 77 78publishing { 79 publications { 80 maven { 81 afterEvaluate { 82 from components.release 83 } 84 } 85 } 86} 87