plugins { id 'java' id 'com.google.protobuf' id 'idea' } configurations { // For grpc python codegen. python { canBeResolved = false canBeConsumed = true } } protobuf { protoc { artifact = 'com.google.protobuf:protoc:3.11.0' } plugins { grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.28.1' // CURRENT_GRPC_VERSION } grpc_python { path = "$projectDir/grpc_python_plugin" } } generateProtoTasks { all().each { task -> task.builtins { java { option 'lite' } python {} } task.plugins { grpc { // Options added to --grpc_out option 'lite' } grpc_python { outputSubDir = 'python' } } } } } task packPythonGrpc(type: Zip) { from protobuf.generatedFilesBaseDir + '/main/python' } artifacts { python(packPythonGrpc) } dependencies { implementation 'io.grpc:grpc-okhttp:1.28.1' // CURRENT_GRPC_VERSION implementation 'io.grpc:grpc-protobuf-lite:1.28.1' // CURRENT_GRPC_VERSION implementation 'io.grpc:grpc-stub:1.28.1' // CURRENT_GRPC_VERSION implementation 'javax.annotation:javax.annotation-api:1.2' }