2017-05-16 5 views
1

Ich versuche derzeit, Google APIs (vorerst nur aufgrund der Annotationsoptionen) in Go von Bazel zu konsumieren.Wie man Google APIs mit Go in Bazel verwendet

Es gibt die official repo für die Proto-API. Dort leiten sie Go-Benutzer an special go variant um.

Beide haben nur ein Stub Bazel-Paket definiert. Somit scheint keiner direkt verwendbar zu sein.

So ein Weg, dies zu tun, wäre the latter gabeln, einführen Pakete go_proto_libraries zu bauen und zu hoffen, dass die Verzeichnisstruktur der go rules stillt. Fragen:

  1. Gibt es bereits ein anderes Repository, das einfach verwendet werden kann?

Falls nicht:

  1. Letztere Repo ist als experimentell gekennzeichnet. Wie wahrscheinlich sind Änderungen?
  2. Wird das letzte Repo synchron gehalten?
  3. Sollten die Quellen in letzterem Repo verwendet werden oder neue mit Bazel von Grund auf neu gebaut werden?
  4. Gibt es einen besseren Weg, dies zu tun?

Antwort

1

fragte ich das Go-Team und die Antwort war:

https://github.com/bazelbuild/rules_go/blob/master/proto/go_proto_library.bzl keine gute Lösung für diesen Fall, wo die .proto in einer ganz anderen Lage ist von der .pb.go anderen Dateien Verwenden Sie eine Genrule, um die .proto-Datei von ihrer Quelle zu kopieren und dann eine go_proto_library, um sie zu bearbeiten.

https://github.com/pubref/rules_protobuf/blob/master/go/rules.bzl hat eine go_proto_library, die die .proto von einem Ort und die .pb.go von einem anderen erlaubt, aber Haftungsausschluss: Dieser Code ist nicht im Besitz von oder von Google gepflegt.

In Bezug auf die Fragen:

1) Nein

2) Keine Ahnung

3) 2

4) bazel immer empfiehlt, von der Quelle zu erzeugen (in diesem Fall der .proto Dateien)

5) noch nicht

Verwandte Themen