grpc-kotlin icon indicating copy to clipboard operation
grpc-kotlin copied to clipboard

run gradle generateProto failed in intellij

Open Lin-Liang opened this issue 4 years ago • 14 comments

hey guys, I am trying to use gralde generateProtol to generate grpc kotlin code in intellij and it has been unsuccessful. the error message as below:

Caching disabled for task ':generateProto' because: Build cache is disabled Task ':generateProto' is not up-to-date because: Task has failed previously. Resolving artifact: [group:io.grpc, name:protoc-gen-grpc-kotlin, version:0.1.5, classifier:osx-x86_64, ext:exe] Resolved artifact: /usr/local/bin/gradle /caches/modules-2/files-2.1/io.grpc/protoc-gen-grpc-kotlin/0.1.5/343b3d6ab1e9252ce02fed047a8bdf446b563dd2/protoc-gen-grpc-kotlin-0.1.5-osx-x86_64.exe Resolving artifact: [group:io.grpc, name:protoc-gen-grpc-java, version:1.30.0, classifier:osx-x86_64, ext:exe] Resolved artifact: /usr/local/bin/gradle /caches/modules-2/files-2.1/io.grpc/protoc-gen-grpc-java/1.30.0/451d2960539797da3100b64261873a5d96033b67/protoc-gen-grpc-java-1.30.0-osx-x86_64.exe Resolving artifact: [group:com.google.protobuf, name:protoc, version:3.12.2, classifier:osx-x86_64, ext:exe] Resolved artifact: /usr/local/bin/gradle /caches/modules-2/files-2.1/com.google.protobuf/protoc/3.12.2/7799ef10b53f4020275b835020d590199a99d142/protoc-3.12.2-osx-x86_64.exe

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':generateProto'.

protoc: stdout: . stderr: Error: Invalid or corrupt jarfile /usr/local/bin/gradle --grpckt_out: protoc-gen-grpckt: Plugin failed with status code 1.

I don't know what happened, the weird thing is that it is ok to run in the terminal。It seems that the two of them are incompatible. And I can successfully generate grpc java code in Intellij, which does not seem to be a problem with Intellij

my environment configuration:

os.detected.name=osx os.detected.arch=x86_64 os.detected.version=10.15 os.detected.version.major=10 os.detected.version.minor=15 os.detected.classifier=osx-x86_64

gradle: stable 6.6.1 Open-source build automation tool based on the Groovy and Kotlin DSL https://www.gradle.org/ /usr/local/Cellar/gradle/6.5.1 (11,644 files, 249.4MB) *

gradle configurations

val grpcVersion = "1.30.0"
val grpcKotlinVersion = "0.1.5"
val protobufVersion = "3.12.2"
val coroutinesVersion = "1.3.7"


implementation("javax.annotation:javax.annotation-api:1.2")
implementation("com.google.protobuf:protobuf-java-util:$protobufVersion")
implementation("io.grpc:grpc-protobuf:$grpcVersion")
implementation("io.grpc:grpc-stub:$grpcVersion")
implementation("io.grpc:grpc-kotlin-stub:$grpcKotlinVersion")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
runtimeOnly("io.grpc:grpc-netty-shaded:$grpcVersion")

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:$protobufVersion"
    }
    plugins {
        id("grpc") {
            artifact = "io.grpc:protoc-gen-grpc-java:$grpcVersion"
        }
        id("grpckt") {
            artifact = "io.grpc:protoc-gen-grpc-kotlin:$grpcKotlinVersion"
        }
    }
    generateProtoTasks {
        ofSourceSet("main").forEach {
            it.plugins {
                id("grpc")
                id("grpckt")
            }
        }
    }
}

sourceSets {
    main {
        java {
            setSrcDirs(
                listOf(
                    "build/generated/source/proto/main/grpc",
                    "build/generated/source/proto/main/java",
                    "build/generated/source/proto/main/grpckt"
                )
            )
        }
    }
}

java {
    sourceCompatibility = JavaVersion.VERSION_11
}

hopefully someone can help me with it.

Lin-Liang avatar Aug 29 '20 02:08 Lin-Liang

intellij idea 2019.3.4 (ultimate Edition)

Lin-Liang avatar Aug 29 '20 02:08 Lin-Liang

So you are running the task from the Gradle tasks menu in IntelliJ? What happens if you run the task instead from the command line?

jamesward avatar Aug 31 '20 14:08 jamesward

So you are running the task from the Gradle tasks menu in IntelliJ? What happens if you run the task instead from the command line?

yes, i run Gradle tasks menu in Intellij, if i run the task in terminal command line, every thing is ok.

Lin-Liang avatar Sep 01 '20 00:09 Lin-Liang

I think this is likely because the env vars that are used when running a task from IntelliJ differ from those in a shell. So the PATH and JAVA_HOME are likely different. Unfortunately it seems hard in IntelliJ to change these env vars. Can you check the env vars from when your gradle build runs and see how they differ?

jamesward avatar Sep 01 '20 15:09 jamesward

I think this is likely because the env vars that are used when running a task from IntelliJ differ from those in a shell. So the PATH and JAVA_HOME are likely different. Unfortunately it seems hard in IntelliJ to change these env vars. Can you check the env vars from when your gradle build runs and see how they differ?

thinks your advice, i had checked look likes the env vars are same. i try to run with --stacktrace and get the following messages

> Task :extractIncludeProto UP-TO-DATE
> Task :extractProto UP-TO-DATE
> Task :generateProto FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateProto'.
> protoc: stdout: . stderr: Error: Invalid or corrupt jarfile /usr/local/bin/gradle
  --grpckt_out: protoc-gen-grpckt: Plugin failed with status code 1.


* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':generateProto'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:370)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:357)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:350)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.api.GradleException: protoc: stdout: . stderr: Error: Invalid or corrupt jarfile /usr/local/bin/gradle
--grpckt_out: protoc-gen-grpckt: Plugin failed with status code 1.

    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at com.google.protobuf.gradle.GenerateProtoTask.compileFiles(GenerateProtoTask.groovy:593)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at com.google.protobuf.gradle.GenerateProtoTask.compile(GenerateProtoTask.groovy:538)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:722)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:689)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:569)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:554)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:537)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:278)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:267)
    at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
    at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
    at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:194)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:370)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:357)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:350)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)


* Get more help at https://help.gradle.org

BUILD FAILED in 1s
3 actionable tasks: 1 executed, 2 up-to-date
Task execution finished 'generateProto --stacktrace'.

Lin-Liang avatar Sep 02 '20 03:09 Lin-Liang

Can you try again with 0.2.0 and the new jar-based artifact: https://github.com/grpc/grpc-kotlin/blob/master/examples/build.gradle.kts#L47

And make sure you bump the com.google.protobufplugin to 0.8.13: https://github.com/grpc/grpc-kotlin/blob/master/examples/build.gradle.kts#L16

jamesward avatar Sep 17 '20 17:09 jamesward

@jamesward The jar based artifact doesn't work for me. I had to fallback to 0.1.5 where linux specific binaries were provided. Is there some setup I have to do to run the jar based generator?

            grpckt {
                artifact = "io.grpc:protoc-gen-grpc-kotlin:${grpcKotlinGenVersion}:jdk7@jar"
            }
Execution failed for task ':core-proto:generateProto'.
> protoc: stdout: . stderr: <home/gradle>/caches/modules-2/files-2.1/io.grpc/protoc-gen-grpc-kotlin/0.2.0/186636a3a56c030e84d37f0162e0900c3167eb86/protoc-gen-grpc-kotlin-0.2.0-jdk7.jar: program not found or is not executable
  Please specify a program using absolute path or make sure the program is available in your PATH system variable
  --grpckt_out: protoc-gen-grpckt: Plugin failed with status code 1.

Without jdk7@jar and protoc generator in version 0.2.0 I get this:

Execution failed for task ':core-proto:generateProto'.
> Could not resolve all files for configuration ':core-proto:protobufToolsLocator_grpckt'.
   > Could not find protoc-gen-grpc-kotlin-0.2.0-linux-x86_64.exe (io.grpc:protoc-gen-grpc-kotlin:0.2.0).
     Searched in the following locations:
         https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-kotlin/0.2.0/protoc-gen-grpc-kotlin-0.2.0-linux-x86_64.exe

This is from using the IntelliJ. I haven't tested with commandline as I don't have gradle installed (Intellij provides it)

arncore avatar Oct 02 '20 18:10 arncore

My issue was fixed by updating to latest version of com.google.protobuf:protobuf-gradle-plugin.

arncore avatar Oct 05 '20 01:10 arncore

I use protobuf gradle plugin (0.8.13) (latest), but not work for me in gradle build

Execution failed for task ':kommons-io-grpc:generateTestProto'.
> Could not resolve all files for configuration ':kommons-io-grpc:protobufToolsLocator_grpcKt'.
   > Could not find protoc-gen-grpc-kotlin-0.2.0-osx-x86_64.exe (io.grpc:protoc-gen-grpc-kotlin:0.2.0).
     Searched in the following locations:
         http://nexus.dev-myrealtrip.net/repository/maven-public/io/grpc/protoc-gen-grpc-kotlin/0.2.0/protoc-gen-grpc-kotlin-0.2.0-osx-x86_64.exe

debop avatar Oct 05 '20 15:10 debop

@debop Make sure you specify the plugin artifact like:

artifact = "io.grpc:protoc-gen-grpc-kotlin:0.2.0:jdk7@jar"

jamesward avatar Oct 05 '20 22:10 jamesward

@jamesward Thanks your solution. It's work.

use

  1. com.google.protobuf plugin 0.8.13
  2. io.grpc:protoc-gen-grpc-kotlin:0.2.0:jdk7@jar

debop avatar Oct 07 '20 10:10 debop

I ran into this problem today, and @debop solution worked for me, except I'm using the latest protobuf plugin. Is this documented somewhere where it can be more easily found than looking through closed tickets?

asarkar avatar Feb 19 '21 01:02 asarkar

I think we do need better docs around this, but yeah, it is documented in a non-obvious place: https://github.com/grpc/grpc-kotlin/tree/master/compiler

jamesward avatar Feb 25 '21 03:02 jamesward

My issue was fixed by updating to latest version of com.google.protobuf:protobuf-gradle-plugin.

Came here from a Google search, this fixed it for me as well.

keith-miller avatar Apr 11 '21 02:04 keith-miller