Java 未能应用插件';com.google.protobuf';

Java 未能应用插件';com.google.protobuf';,java,gradle,build.gradle,Java,Gradle,Build.gradle,我正在尝试对插件的构建脚本中的错误进行故障排除。我可以从IntelliJ IDEA内部运行它,但是当我尝试从命令行构建时,我得到了一个异常 我已经能够将构建脚本减少到最低限度,如下所示: buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6' }

我正在尝试对插件的构建脚本中的错误进行故障排除。我可以从IntelliJ IDEA内部运行它,但是当我尝试从命令行构建时,我得到了一个异常

我已经能够将构建脚本减少到最低限度,如下所示:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6'
    }
}

plugins {
    id 'java'
    id 'org.jetbrains.intellij' version '0.3.12'
    id "maven"
    id "de.undercouch.download" version "3.2.0"
    id "com.google.protobuf" version "0.8.6"
    id "idea"
}
当我尝试使用此脚本执行构建时,会出现以下错误:

$ gradle buildPlugin

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/erikengheim/Development/Java/experiment/build.gradle' line: 17

* What went wrong:
An exception occurred applying plugin request [id: 'com.google.protobuf', version: '0.8.6']
> Failed to apply plugin 'com.google.protobuf'.
   > Could not create an instance of type com.google.protobuf.gradle.ProtobufSourceDirectorySet.
      > 'void org.gradle.api.internal.file.DefaultSourceDirectorySet.<init>(java.lang.String, java.lang.String, org.gradle.api.internal.file.FileResolver, org.gradle.api.internal.file.collections.DirectoryFileTreeFactory)'

我对Gradle或Java不太熟悉,因此我不知道如何解释异常的堆栈回溯。

您应该使用最新版本的
protobuf Gradle plugin
,即
0.8.13
。它至少需要Gradle 5.6和Java 8。
更新生成脚本:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.13'
  }
}
这一行:

id "com.google.protobuf" version "0.8.13"

您应该使用最新版本的protobuf gradle插件,即
0.8.13
。它至少需要Gradle 5.6和Java 8。
更新生成脚本:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.13'
  }
}
这一行:

id "com.google.protobuf" version "0.8.13"

您根本不需要
buildscript
部分。id为
“com.google.protobuf”
的插件可通过提供,因此它将由
插件
块自动解析。您根本不需要
构建脚本
部分。id为
“com.google.protobuf”
的插件可通过提供,因此它将由
插件
块自动解析。