https://segmentfault.com/a/1190000020301131
1. 根据go.mod下载包
go mod download
2. 第二种方式
go get packagename@v1.2.3
3.
go run、go build 也会自动下载依赖
将依赖包下载到vendor目录
go mod vendor
bazel run //:gazelle update-repos -from_file=go.mod
bazel run //:gazelle update-repos github.com/json-iterator/go@v1.1.7
bazel run //:gazelle
bazel run //:taotao
bazel clean
gazell的prefix和项目的module名称一致,不然找不到对应的依赖
例如:用taotao或者用github.com/mypanda/taotao都可
gazell 是收集依赖
BUILD.bazel 可以只写load gazell,不定义go_binary,执行gazell会生成go_binary
多文件
go_binary(
name = "main",
srcs = [
"calc.go",
"main.go",
],
visibility = ["//visibility:public"],
)
多模块,模块下面也需要定义BUILD.bazel
go_library(
name = "go_default_library",
srcs = ["main.go"],
importpath = "taotao",
visibility = ["//visibility:private"],
deps = [
"//handler:go_default_library",
"@com_github_json_iterator_go//:go_default_library",
],
)
handle模块
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["handler.go"],
importpath = "taotao/handler",
visibility = ["//visibility:public"],
)
WORKSPACE是固定形式
项目中有src/github.com/mypanda/xxx
需要把BUILD.bazel WORKSPACE放到src文件夹中
可以在项目根目录添加Makefile
怎么在WORSPACE中添加新的包