1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
plugins {
// Provide convenience executables for trying out the examples.
id 'application'
// ASSUMES GRADLE 5.6 OR HIGHER. Use plugin version 0.8.10 with earlier gradle versions
id 'com.google.protobuf' version '0.8.17'
// Generate IntelliJ IDEA's .idea & .iml project files
id 'idea'
}
repositories {
maven { // The google mirror is less flaky than mavenCentral()
url "https://maven-central.storage-download.googleapis.com/maven2/" }
mavenCentral()
mavenLocal()
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
// IMPORTANT: You probably want the non-SNAPSHOT version of gRPC. Make sure you
// are looking at a tagged version of the example and not "master"!
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.41.3' // CURRENT_GRPC_VERSION
def protobufVersion = '3.19.6'
def protocVersion = protobufVersion
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
implementation "io.grpc:grpc-stub:${grpcVersion}"
compileOnly "org.apache.tomcat:annotations-api:6.0.53"
// examples/advanced need this for JsonFormat
implementation "com.google.protobuf:protobuf-java-util:${protobufVersion}"
runtimeOnly "io.grpc:grpc-netty-shaded:${grpcVersion}"
testImplementation "io.grpc:grpc-testing:${grpcVersion}"
testImplementation "junit:junit:4.12"
testImplementation "org.mockito:mockito-core:3.4.0"
}
protobuf {
protoc { artifact = "com.google.protobuf:protoc:${protocVersion}" }
plugins {
grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" }
}
generateProtoTasks {
all()*.plugins { grpc {} }
}
}
// Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code.
sourceSets {
main {
java {
srcDirs 'build/generated/source/proto/main/grpc'
srcDirs 'build/generated/source/proto/main/java'
}
}
}
startScripts.enabled = false
task routeGuideServer(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.routeguide.RouteGuideServer'
applicationName = 'route-guide-server'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task routeGuideClient(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.routeguide.RouteGuideClient'
applicationName = 'route-guide-client'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task helloWorldServer(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.helloworld.HelloWorldServer'
applicationName = 'hello-world-server'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task helloWorldClient(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.helloworld.HelloWorldClient'
applicationName = 'hello-world-client'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task retryingHelloWorldServer(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.retrying.RetryingHelloWorldServer'
applicationName = 'retrying-hello-world-server'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task retryingHelloWorldClient(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.retrying.RetryingHelloWorldClient'
applicationName = 'retrying-hello-world-client'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task hedgingHelloWorldServer(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.hedging.HedgingHelloWorldServer'
applicationName = 'hedging-hello-world-server'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task hedgingHelloWorldClient(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.hedging.HedgingHelloWorldClient'
applicationName = 'hedging-hello-world-client'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task compressingHelloWorldClient(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.experimental.CompressingHelloWorldClient'
applicationName = 'compressing-hello-world-client'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task manualFlowControlClient(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.manualflowcontrol.ManualFlowControlClient'
applicationName = 'manual-flow-control-client'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
task manualFlowControlServer(type: CreateStartScripts) {
mainClassName = 'io.grpc.examples.manualflowcontrol.ManualFlowControlServer'
applicationName = 'manual-flow-control-server'
outputDir = new File(project.buildDir, 'tmp')
classpath = startScripts.classpath
}
applicationDistribution.into('bin') {
from(routeGuideServer)
from(routeGuideClient)
from(helloWorldServer)
from(helloWorldClient)
from(hedgingHelloWorldClient)
from(hedgingHelloWorldServer)
from(retryingHelloWorldClient)
from(retryingHelloWorldServer)
from(compressingHelloWorldClient)
from(manualFlowControlClient)
from(manualFlowControlServer)
fileMode = 0755
}
|