2017-11-17 4 views
1

私は外部のGo gitリポジトリをインポートしたいBazel WORKSPACEを持っています。最高の練習が常にガゼルBUILD.bazelファイルを持っているか、私のソースワークスペースが何らかの形でガゼルを起動してファイルを生成できるので、私はそれらをチェックする必要はないと思っていますか?後者は、私が上流のレポの所有者でない場合、このケースは意味をなさない。Gazelleを外部Goプロジェクト用に実行できますか?

答えて

3

外部のgitリポジトリは定期的なGoリポジトリですか?それを構築する "行く"ことができますか?その場合、現在のベストプラクティスは、WORKSPACEファイルにgo_repositoryを使用することです。

load("@io_bazel_rules_go//go:def.bzl", "go_repository") 

go_repository(
    name = "org_golang_x_tools", 
    importpath = "golang.org/x/tools", 
    commit = "663269851cdddc898f963782f74ea574bcd5c814", 
) 

これは、Gazelleを使用してリポジトリをチェックアウトし、ビルドファイルを生成します。また、Goインポートパスのリダイレクトを処理します。

リポジトリがきれいにこの方法を構築していない場合、あなたは、それをチェックアウトガゼルの-experimental_flatフラグを使用して、単一のビルドファイルを生成し、必要に応じて修正し、new_git_repositoryまたはnew_http_archiveでそれを使用することができます。このワークフローは今はかなり厄介であり、将来的にはそれを多く簡略化する予定です。

関連する問題