Skip to content

Please update the Datastore with Protobuf codelab to support Gradle Kotlin DSL / Kotlin code generation #59

Open
@danielesegato

Description

@danielesegato

Hi,

It took me some hours to figure out how to set it up correctly, I think the codelab should mention it:

import com.google.protobuf.gradle.id

plugins {
  // ...
  id("com.google.protobuf") // version 0.9.1
}

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.21.9"
    }

    // Generates the java Protobuf-lite code for the Protobufs in this project. See
    // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation
    // for more information.
    generateProtoTasks {
        // see https://github.com/google/protobuf-gradle-plugin/issues/518
        // see https://github.com/google/protobuf-gradle-plugin/issues/491
        
        // all() here because of android multi-variant
        all().forEach { task ->
            // this only works on version 3.8+ that has buildins for javalite / kotlin lite
            // with previous version the java build in is to be removed and a new plugin
            // need to be declared
            task.builtins {
                id("java") { // id is imported above
                    option("lite")
                }
                id("kotlin") {
                    option("lite")
                }
            }
        }
    }
}

depencencies {
  // ...
  implementaiton("com.google.protobuf:protobuf-javalite:3.21.9")
  implementaiton("com.google.protobuf:protobuf-kotlin-lite:3.21.9")
  // ....
}

this generate kotlin helpers for the proto and correctly works on gradle kotlin-dsl

the codelab only show how to configure for java and gradle groovy

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions