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