Как установить переменную среды LD_LIBRARY_PATH через build.gradle для генерации кода protobuf

  1. Я использую плагин protobuf gradle в своем файле build.gradle для генерации java-кода grpc и реактора gprc.
  2. Из-за ограничений безопасности я не могу использовать плагин непосредственно из центра maven. Мне нужно загрузить эти плагины и указать локальный путь в моем файле gradle.
  3. К сожалению, при локальной настройке кажется, что компилятор протокола ищет LD_LIBRARY_PATH, который нам нужно предоставить явно.

Есть ли способ указать этот путь в файле Gradle?

Ниже показано, как я использую плагин protobuf.

apply plugin: "com.google.protobuf"

protobuf {
    protoc {
        path = "Local protoc path"
    }
    plugins {
        grpc {
            path = "Local Protoc gen grpc path"
        }
        reactor {
            path = "Local salesforce reactor grpc path
        }
    }
    generateProtoTasks {
        ofSourceSet("main")*.plugins {
            grpc {}
            reactor {}
        }
    }
}

Запуск файла выше дает ошибку ниже

"ошибка при загрузке разделяемых библиотек: libprotoc.so.15: невозможно открыть файл общих объектов: нет такого файла или каталога"

Поиск этой ошибки в Интернете показывает, что мне нужно установить LD_LIBRARY_PATH


person Rohan Gujarathi    schedule 05.08.2019    source источник


Ответы (1)


Версия протокола на Maven Central статически связана с libprotoc, поэтому LB_LIBRARY_PATH не потребуется. Используйте это вместо этого. Обратите внимание, что файлы должны иметь расширение файла, поэтому они используют расширение файла .exe даже в Linux. Аналогичным образом вы можете загрузить

person Eric Anderson    schedule 06.08.2019