1plugins { 2 id "com.android.application" 3 id "com.google.protobuf" 4} 5 6description = 'gRPC: Android Integration Testing' 7 8repositories { 9 google() 10 mavenCentral() 11} 12 13android { 14 namespace 'io.grpc.android.integrationtest' 15 sourceSets { 16 main { 17 java { 18 srcDirs += "${projectDir}/../interop-testing/src/main/java/" 19 setIncludes(["io/grpc/android/integrationtest/**", 20 "io/grpc/testing/integration/AbstractInteropTest.java", 21 "io/grpc/testing/integration/TestServiceImpl.java", 22 "io/grpc/testing/integration/Util.java"]) 23 } 24 proto { 25 srcDirs += "${projectDir}/../interop-testing/src/main/proto/" 26 } 27 } 28 } 29 compileOptions { 30 sourceCompatibility JavaVersion.VERSION_1_8 31 targetCompatibility JavaVersion.VERSION_1_8 32 } 33 compileSdkVersion 33 34 35 defaultConfig { 36 applicationId "io.grpc.android.integrationtest" 37 minSdkVersion 19 38 targetSdkVersion 33 39 versionCode 1 40 versionName "1.0" 41 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 42 multiDexEnabled true 43 } 44 buildTypes { 45 debug { minifyEnabled false } 46 release { 47 minifyEnabled true 48 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 49 } 50 } 51 lintOptions { 52 disable 'InvalidPackage', 'HardcodedText', 'UsingOnClickInXml', 53 'MissingClass' // https://github.com/grpc/grpc-java/issues/8799 54 } 55 packagingOptions { 56 exclude 'META-INF/INDEX.LIST' 57 exclude 'META-INF/io.netty.versions.properties' 58 } 59} 60 61dependencies { 62 implementation 'androidx.appcompat:appcompat:1.3.0' 63 implementation 'androidx.multidex:multidex:2.0.0' 64 implementation libraries.androidx.annotation 65 implementation 'com.google.android.gms:play-services-base:18.0.1' 66 67 implementation project(':grpc-android'), 68 project(':grpc-auth'), 69 project(':grpc-census'), 70 project(':grpc-okhttp'), 71 project(':grpc-protobuf-lite'), 72 project(':grpc-stub'), 73 project(':grpc-testing'), 74 libraries.hdrhistogram, 75 libraries.junit, 76 libraries.truth, 77 libraries.androidx.test.rules, 78 libraries.opencensus.contrib.grpc.metrics 79 80 implementation (libraries.google.auth.oauth2Http) { 81 exclude group: 'org.apache.httpcomponents' 82 } 83 84 implementation (project(':grpc-services')) { 85 exclude group: 'com.google.protobuf' 86 exclude group: 'com.google.guava' 87 } 88 89 compileOnly libraries.javax.annotation 90 91 androidTestImplementation project(':grpc-netty'), 92 'androidx.test.ext:junit:1.1.3', 93 'androidx.test:runner:1.4.0' 94} 95 96// Checkstyle doesn't run automatically with android 97task checkStyleMain(type: Checkstyle) { 98 source 'src/main/java' 99 include '**/*.java' 100 classpath = files() 101} 102 103task checkStyleTest(type: Checkstyle) { 104 source 'src/androidTest/java' 105 include '**/*.java' 106 classpath = files() 107} 108 109project.tasks['check'].dependsOn checkStyleMain, checkStyleTest 110 111import net.ltgt.gradle.errorprone.CheckSeverity 112 113tasks.withType(JavaCompile).configureEach { 114 options.compilerArgs += [ 115 "-Xlint:-cast" 116 ] 117 appendToProperty(it.options.errorprone.excludedPaths, ".*/R.java", "|") 118 appendToProperty( 119 it.options.errorprone.excludedPaths, 120 ".*/src/generated/.*", 121 "|") 122} 123 124configureProtoCompilation() 125