Глядя на readme для google-fhir, он говорит, что нужно запустить bazel build
, что работает, однако ни один из файлов протокола не был скомпилирован.
Запуск protoc --proto_path=. --java_out=. proto/stu3/resources.proto
возвращает кучу ошибок о том, что другие протоколы не найдены. Это идет в обратном направлении до "descriptor.proto", который не является прототипом в папке. Ни один из файлов протокола в этом каталоге не будет вручную компилироваться в файлы java.
* С другой стороны, я смог взять другие примеры протоколов из других источников и успешно их скомпилировать.
ОБНОВЛЕНИЕ
Выполнение команды protoc --proto_path=proto/stu3/ --java_out=target proto/stu3/resources.proto
из базового каталога google-fhir возвращает следующий результат:
~/fhir-master$ protoc --proto_path=proto/stu3/ --java_out=target proto/stu3/resources.proto
proto/stu3/annotations.proto: File not found.
proto/stu3/codes.proto: File not found.
proto/stu3/datatypes.proto: File not found.
resources.proto: Import "proto/stu3/annotations.proto" was not found or had errors.
resources.proto: Import "proto/stu3/codes.proto" was not found or had errors.
resources.proto: Import "proto/stu3/datatypes.proto" was not found or had errors.
resources.proto:84:5: "String" is not defined.
resources.proto:87:14: "Extension" is not defined.
resources.proto:90:14: "Extension" is not defined.
resources.proto:94:5: "Reference" is not defined.
resources.proto:97:5: "PositiveInt" is not defined.
...
...
Эти файлы определенно находятся в одном каталоге proto.
ОБНОВЛЕНИЕ 2
Что ж, прямо из коробки это определенно не работает. Перемещая файлы, я смог создать целевую папку с кучей файлов Java. Однако, пытаясь их скомпилировать, я получаю ошибки для несуществующих файлов:
symbol: class CodeableConcept
location: package com.google.fhir.stu3.proto
./PlanDefinition.java:30950: error: cannot find symbol
public com.google.fhir.stu3.proto.CodeableConceptOrBuilder getJurisdictionOrBuilder(
^
symbol: class CodeableConceptOrBuilder
location: package com.google.fhir.stu3.proto
./PlanDefinition.java:30956: error: cannot find symbol
private java.util.List<com.google.fhir.stu3.proto.CodeableConcept> topic_;
^
symbol: class CodeableConcept
location: package com.google.fhir.stu3.proto
./PlanDefinition.java:30964: error: cannot find symbol
public java.util.List<com.google.fhir.stu3.proto.CodeableConcept> getTopicList() {
^
symbol: class CodeableConcept
location: package com.google.fhir.stu3.proto
./PlanDefinition.java:30974: error: cannot find symbol
public java.util.List<? extends com.google.fhir.stu3.proto.CodeableConceptOrBuilder>
.... ^
100 errors.
! Кроме того, я не вижу здесь этот файл: https://github.com/google/protobuf/tree/master/java/core/src/main/java/com/google/protobuf
bazel-bin bazel-fhir-master bazel-genfiles bazel-out bazel-testlogs CONTRIBUTING.md examples java LICENSE proto README.md testdata WORKSPACE
. Однако файлов буфера протокола .java нет. - person user8897013   schedule 24.04.2018