-
Notifications
You must be signed in to change notification settings - Fork 3.9k
/
build.gradle
125 lines (112 loc) · 5.34 KB
/
build.gradle
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
plugins {
// Provide convenience executables for trying out the examples.
id 'application'
id 'com.google.protobuf' version '0.9.4'
// 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()
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
// 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.70.0-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
def protocVersion = protobufVersion
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
implementation "io.grpc:grpc-services:${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 "io.grpc:grpc-inprocess:${grpcVersion}"
testImplementation "junit:junit:4.13.2"
testImplementation "org.mockito:mockito-core:4.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
// Creates start scripts for a class name and adds it to the distribution. The
// base class name is used to name the task and scripts. For example, passed
// the class io.grpc.examples.helloworld.HelloWorldClient, it creates the task
// helloWorldClient with script name hello-world-client.
def createStartScripts(String mainClassName) {
String bareName = mainClassName.substring(mainClassName.lastIndexOf('.') + 1);
String taskName = bareName.uncapitalize();
def newTask = tasks.register(taskName, CreateStartScripts) {
mainClass = mainClassName
applicationName = taskName.replaceAll('([A-Z])') { '-' + it[0].uncapitalize() }
outputDir = new File(project.buildDir, 'tmp/scripts/' + name)
classpath = startScripts.classpath
}
application {
applicationDistribution.into('bin') {
from(newTask)
filePermissions {
unix(0755)
}
}
}
}
createStartScripts('io.grpc.examples.advanced.HelloJsonClient')
createStartScripts('io.grpc.examples.advanced.HelloJsonServer')
createStartScripts('io.grpc.examples.cancellation.CancellationClient')
createStartScripts('io.grpc.examples.cancellation.CancellationServer')
createStartScripts('io.grpc.examples.customloadbalance.CustomLoadBalanceClient')
createStartScripts('io.grpc.examples.deadline.DeadlineClient')
createStartScripts('io.grpc.examples.deadline.DeadlineServer')
createStartScripts('io.grpc.examples.errordetails.ErrorDetailsExample')
createStartScripts('io.grpc.examples.experimental.CompressingHelloWorldClient')
createStartScripts('io.grpc.examples.grpcproxy.GrpcProxy')
createStartScripts('io.grpc.examples.healthservice.HealthServiceClient')
createStartScripts('io.grpc.examples.healthservice.HealthServiceServer')
createStartScripts('io.grpc.examples.hedging.HedgingHelloWorldClient')
createStartScripts('io.grpc.examples.hedging.HedgingHelloWorldServer')
createStartScripts('io.grpc.examples.helloworld.HelloWorldClient')
createStartScripts('io.grpc.examples.helloworld.HelloWorldServer')
createStartScripts('io.grpc.examples.keepalive.KeepAliveClient')
createStartScripts('io.grpc.examples.keepalive.KeepAliveServer')
createStartScripts('io.grpc.examples.loadbalance.LoadBalanceClient')
createStartScripts('io.grpc.examples.loadbalance.LoadBalanceServer')
createStartScripts('io.grpc.examples.manualflowcontrol.BidiBlockingClient')
createStartScripts('io.grpc.examples.manualflowcontrol.ManualFlowControlClient')
createStartScripts('io.grpc.examples.manualflowcontrol.ManualFlowControlServer')
createStartScripts('io.grpc.examples.multiplex.MultiplexingServer')
createStartScripts('io.grpc.examples.multiplex.SharingClient')
createStartScripts('io.grpc.examples.nameresolve.NameResolveClient')
createStartScripts('io.grpc.examples.nameresolve.NameResolveServer')
createStartScripts('io.grpc.examples.preserialized.PreSerializedClient')
createStartScripts('io.grpc.examples.preserialized.PreSerializedServer')
createStartScripts('io.grpc.examples.retrying.RetryingHelloWorldClient')
createStartScripts('io.grpc.examples.retrying.RetryingHelloWorldServer')
createStartScripts('io.grpc.examples.routeguide.RouteGuideClient')
createStartScripts('io.grpc.examples.routeguide.RouteGuideServer')
createStartScripts('io.grpc.examples.waitforready.WaitForReadyClient')