11buildscript {
22 dependencies {
33 classpath " gradle.plugin.org.jruyi.gradle:thrift-gradle-plugin:0.4.1"
4+ classpath ' com.google.protobuf:protobuf-gradle-plugin:0.8.11'
45 }
56}
67
@@ -11,6 +12,7 @@ plugins {
1112 id ' net.ltgt.errorprone' version ' 1.1.1'
1213 id ' java-library'
1314 id ' jacoco'
15+ id ' com.google.protobuf' version ' 0.8.11'
1416}
1517
1618repositories {
@@ -21,6 +23,8 @@ repositories {
2123 jcenter()
2224}
2325
26+ apply plugin : ' com.google.protobuf'
27+ apply plugin : ' idea' // IntelliJ plugin to see files generated from protos
2428apply plugin : ' maven'
2529apply plugin : ' org.jruyi.thrift'
2630apply plugin : ' maven-publish'
@@ -63,6 +67,14 @@ dependencies {
6367 compile group : ' io.micrometer' , name : ' micrometer-core' , version : ' 1.1.2'
6468 compile group : ' javax.annotation' , name : ' javax.annotation-api' , version : ' 1.3.2'
6569 compile group : ' com.auth0' , name : ' java-jwt' , version :' 3.10.2'
70+ compile group : ' com.google.protobuf' , name : ' protobuf-java' , version : ' 3.8.0'
71+ compile group : ' com.google.api.grpc' , name : ' proto-google-common-protos' , version : ' 1.17.0'
72+ compile group : ' io.grpc' , name : ' grpc-testing' , version : ' 1.28.0'
73+ compile group : ' com.google.protobuf' , name : ' protobuf-java-util' , version : ' 3.21.1'
74+
75+ implementation ' io.grpc:grpc-netty-shaded:1.28.0'
76+ implementation ' io.grpc:grpc-protobuf:1.28.0'
77+ implementation ' io.grpc:grpc-stub:1.28.0'
6678
6779 testCompile group : ' junit' , name : ' junit' , version : ' 4.12'
6880 testCompile group : ' com.googlecode.junit-toolbox' , name : ' junit-toolbox' , version : ' 2.4'
@@ -72,7 +84,7 @@ dependencies {
7284license {
7385 header rootProject. file(' license-header.txt' )
7486 skipExistingHeaders true
75- excludes([" **/*.json" , " com/uber/cadence/*.java" , " com/uber/cadence/shadower/*.java" ]) // config files and generated code
87+ excludes([" **/*.json" , " **/idls " , " com/uber/cadence/*.java" , " com/uber/cadence/shadower/*.java" ]) // config files and generated code
7688}
7789
7890task initDlsSubmodule (type : Exec ) {
@@ -92,6 +104,50 @@ compileThrift {
92104 sourceItems " ${ projectDir} /src/main/idls/thrift/cadence.thrift" ," ${ projectDir} /src/main/idls/thrift/shared.thrift" ," ${ projectDir} /src/main/idls/thrift/shadower.thrift"
93105}
94106
107+ sourceSets {
108+ main {
109+ proto {
110+ srcDir ' src/main/idls/proto'
111+ }
112+ java {
113+ srcDir ' src/main'
114+ }
115+ }
116+ }
117+
118+ protobuf {
119+ protoc {
120+ artifact = ' com.google.protobuf:protoc:3.11.0'
121+ }
122+ plugins {
123+ grpc {
124+ artifact = ' io.grpc:protoc-gen-grpc-java:1.28.0'
125+ }
126+ }
127+ generateProtoTasks {
128+ all(). each { task -> task. dependsOn updateDlsSubmodule }
129+ all()* . plugins {
130+ grpc {
131+ outputSubDir = ' java'
132+ }
133+ }
134+ }
135+ }
136+
137+ protobuf {
138+ generatedFilesBaseDir = " $buildDir /generated-sources/proto"
139+ }
140+ idea {
141+ module {
142+ sourceDirs + = file(" $buildDir /generated/main/java" );
143+ sourceDirs + = file(" $buildDir /generated/main/grpc" );
144+ }
145+ }
146+
147+ clean {
148+ delete protobuf. generatedFilesBaseDir
149+ }
150+
95151compileJava {
96152 dependsOn ' googleJavaFormat'
97153 options. encoding = ' UTF-8'
@@ -298,3 +354,4 @@ jacocoTestReport {
298354 }))
299355 }
300356}
357+
0 commit comments