Создать набор файловых дескрипторов (.desc) с помощью scalapb - PullRequest
0 голосов
/ 03 октября 2018

Я использую scalapb в проекте, который должен иметь доступ к FileDescriptorSet.Есть ли способ, чтобы scalapb генерировал файл .desc в дополнение ко всем другим файлам классов?Или есть какой-то программный способ получения FileDescriptorSet из того, что уже сгенерировано?

1 Ответ

0 голосов
/ 04 октября 2018

Да, на оба вопроса.

Если вы используете sbt-protoc, в вашем файле SBT может быть следующее определение:

PB.protocOptions in Compile := Seq(
    "--descriptor_set_out=" + 
        (baseDirectory in Compile).value.getParentFile / "src" / "main" / "resources" /"out.desc"
)

Одно предостережение:создать src/main/resources самостоятельно, иначе вы получите ошибку.Вероятно, было бы лучше сгенерировать в resourceManaged (что также потребовало бы создания каталога заранее, поскольку protoc не делает этого)

Вы также можете собрать FileDescriptorSet во время выполнения.Для каждого прото-файла ScalaPB генерирует объект Scala с scalaDescriptor (а также javaDescriptor, если это более удобно).Дескрипторы содержат список их зависимостей, которые также FileDesciptor s - вы можете пройти по этой древовидной структуре и построить список FileDescriptor s, который по сути является FileDescriptorSet.

...