xref: /aosp_15_r20/external/grpc-grpc-java/android/build.gradle (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
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