Próbuję rozwiązać problem z błędem w skrypcie zbudowanego dla wtyczki. Jestem w stanie uruchomić to od wewnątrz pomysłu Intellij, ale kiedy próbuję zbudować z linii poleceń, dostaję wyjątek.

Udało mi się zmniejszyć skrypt budowy do minimalnego minimum, jak widać poniżej:

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"
}

Kiedy próbuję wykonać kompilację za pomocą tego skryptu, otrzymuję następujące błędy:

$ 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)'

Mogę to zrobić, aby działać, jeśli komentuję tylko linię:

id "com.google.protobuf" version "0.8.6"

Nie jestem bardzo zaznajomiony z gradlem ani java, więc nie wiem, jak zinterpretować stosowne stosowanie wyjątku.

1
Erik Engheim 7 październik 2020, 15:36

1 odpowiedź

Najlepsza odpowiedź

Powinieneś użyć najnowszej wersji protobuf-gradle-plugin, która jest 0.8.13. Wymaga co najmniej gradle 5.6 i Java 8.
Zaktualizuj skrypt budowy:

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

I ta linia:

id "com.google.protobuf" version "0.8.13"
3
Ankit 7 październik 2020, 12:53