Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Duplicate handling strategy error with gradle while using protobuf for java

I am using the below configuration build.gradle

plugins {
    id "com.google.protobuf" version "0.8.17"
    id "java"
}

group "de.prerna.aws.tests"
version "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

ext {
  
    protobufVersion = "3.18.1"
}


dependencies {

    implementation "com.google.protobuf:protobuf-java:$protobufVersion"


sourceSets {
    main {
        proto {
            srcDir 'src/main/proto'
        }
        java {
            // include self written and generated code
            srcDirs 'src/main/java'
        }
    }
}

protobuf {
    protoc {

        artifact = 'com.google.protobuf:protoc:4.0.0-rc-2'
    }

    plugins {
        grpc {
            artifact = "io.grpc:protoc-gen-grpc-java:1.39.0"
        }
    }
    generateProtoTasks.generatedFilesBaseDir = 'generated-sources'

    generateProtoTasks {
        all().each { task ->
            task.plugins { grpc{} }
        }
        ofSourceSet('main')

    }
}

Error


* What went wrong:
Execution failed for task ':processResources'.
> Entry Person.proto is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

like image 606
coder25 Avatar asked Oct 30 '25 14:10

coder25


1 Answers

A variant of BParolini for build.gradle (Groovy DSL)

tasks.withType(Copy) {
    filesMatching("**/*.proto") {
        duplicatesStrategy = DuplicatesStrategy.INCLUDE
    }
}
like image 180
DmitriyMX Avatar answered Nov 02 '25 06:11

DmitriyMX



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!