• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1apply plugin: 'com.android.library'
2
3group = "io.grpc"
4version = "1.16.0-SNAPSHOT" // CURRENT_GRPC_VERSION
5description = 'gRPC: Android'
6
7buildscript {
8    repositories {
9        google()
10        jcenter()
11        mavenCentral()
12        maven { url "https://plugins.gradle.org/m2/" }
13    }
14    dependencies {
15        classpath 'com.android.tools.build:gradle:3.0.1'
16        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"
17        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
18    }
19}
20
21apply plugin: "net.ltgt.errorprone"
22apply plugin: 'com.github.dcendents.android-maven'
23apply plugin: "signing"
24
25android {
26    compileSdkVersion 27
27    defaultConfig {
28        consumerProguardFiles "proguard-rules.txt"
29        minSdkVersion 14
30        targetSdkVersion 27
31        versionCode 1
32        versionName "1.0"
33        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
34    }
35    lintOptions { abortOnError false }
36}
37
38repositories {
39    mavenCentral()
40    mavenLocal()
41}
42
43dependencies {
44    implementation 'io.grpc:grpc-core:1.16.0-SNAPSHOT' // CURRENT_GRPC_VERSION
45
46    testImplementation 'io.grpc:grpc-okhttp:1.16.0-SNAPSHOT' // CURRENT_GRPC_VERSION
47    testImplementation 'junit:junit:4.12'
48    testImplementation 'org.robolectric:robolectric:3.7.1'
49    testImplementation 'com.google.truth:truth:0.39'
50}
51
52signing {
53    required false
54    sign configurations.archives
55}
56
57task javadocs(type: Javadoc) {
58    source = android.sourceSets.main.java.srcDirs
59    // TODO(ericgribkoff) Fix javadoc errors
60    failOnError false
61    options {
62        // Disable JavaDoc doclint on Java 8.
63        if (JavaVersion.current().isJava8Compatible()) {
64            addStringOption('Xdoclint:none', '-quiet')
65        }
66    }
67}
68
69task javadocsJar(type: Jar, dependsOn: javadocs) {
70    classifier = 'javadoc'
71    from javadocs.destinationDir
72}
73
74task sourcesJar(type: Jar) {
75    classifier = 'sources'
76    from android.sourceSets.main.java.srcDirs
77}
78
79artifacts {
80    archives sourcesJar
81    archives javadocsJar
82}
83
84uploadArchives.repositories.mavenDeployer {
85    beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
86    if (rootProject.hasProperty('repositoryDir')) {
87        repository(url: new File(rootProject.repositoryDir).toURI())
88    } else {
89        String stagingUrl
90        if (rootProject.hasProperty('repositoryId')) {
91            stagingUrl = 'https://oss.sonatype.org/service/local/staging/deployByRepositoryId/' +
92                    rootProject.repositoryId
93        } else {
94            stagingUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
95        }
96        def configureAuth = {
97            if (rootProject.hasProperty('ossrhUsername') && rootProject.hasProperty('ossrhPassword')) {
98                authentication(userName: rootProject.ossrhUsername, password: rootProject.ossrhPassword)
99            }
100        }
101        repository(url: stagingUrl, configureAuth)
102        snapshotRepository(url: 'https://oss.sonatype.org/content/repositories/snapshots/', configureAuth)
103    }
104}
105
106[
107    install.repositories.mavenInstaller,
108    uploadArchives.repositories.mavenDeployer,
109]*.pom*.whenConfigured { pom ->
110    pom.project {
111        name "$project.group:$project.name"
112        description project.description
113        url 'https://conscrypt.org/'
114
115        scm {
116            connection 'scm:git:https://github.com/grpc/grpc-java.git'
117            developerConnection 'scm:git:git@github.com:grpc/grpc-java.git'
118            url 'https://github.com/grpc/grpc-java'
119        }
120
121        licenses {
122            license {
123                name 'Apache 2.0'
124                url 'https://opensource.org/licenses/Apache-2.0'
125            }
126        }
127
128        developers {
129            developer {
130                id "grpc.io"
131                name "gRPC Contributors"
132                email "grpc-io@googlegroups.com"
133                url "https://grpc.io/"
134                // https://issues.gradle.org/browse/GRADLE-2719
135                organization = "gRPC Authors"
136                organizationUrl "https://www.google.com"
137            }
138        }
139    }
140    def core = pom.dependencies.find {dep -> dep.artifactId == 'grpc-core'}
141    if (core != null) {
142        // Depend on specific version of grpc-core because internal package is unstable
143        core.version = "[" + core.version + "]"
144    }
145}
146