plugins { id "com.google.protobuf" version "0.9.2" id "java" //id "net.idlestate.gradle-duplicate-classes-check" version "1.2.0" } group 'com.gitlab.techschool' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testImplementation group: 'junit', name: 'junit', version: '4.13.2' // https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.22.0' //implementation group: 'io.grpc', name: 'grpc-all', version: '1.53.0' tasks.named("processResources").configure { dependsOn("generateProto") } } sourceSets { main { proto { srcDir 'src/main/proto/messages' include '**/*.proto' } java { srcDirs 'main/java' } } } protobuf { generatedFilesBaseDir = "src/" // deleteGeneratedFilesBeforeCompile = true protoc { artifact = 'com.google.protobuf:protoc:3.22.0' } plugins { grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.53.0' } doc { artifact = "io.github.pseudomuto:protoc-gen-doc:1.5.1" } } generateProtoTasks { processResources() { duplicatesStrategy = 'EXCLUDE' } all().each { task -> task.builtins { java {} cpp {} } task.plugins{ // grpc {} doc { //option 'html, index.html' option 'markdown, v2c.md' } } } } } protoc { artifact = 'com.google.protobuf:protoc:3.22.0' } plugins { grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.53.0' } doc { artifact = "io.github.pseudomuto:protoc-gen-doc:1.5.1" } } generateProtoTasks { processResources() { duplicatesStrategy = 'EXCLUDE' } all().each { task -> task.builtins { java {} cpp {} } task.plugins{ // grpc {} doc { //option 'html, index.html' option 'markdown, v2c.md' } } } }