去 dep 去生成
go dep and go generate
如何添加自动生成的 Go 依赖项?
我有一个 protobuf 存储库,其根目录中有一个 go 文件,其中包含以下内容:
//go:generate ./scripts/generate_go_sources.sh
package protobuf
上述脚本遍历 "message/" 子文件夹中的所有 .proto
文件,并生成 go-sources。
之后,存储库包含很多子包,如
ptyes/package1/file.go
ptyes/package2/file.go
我不想将这些文件签入版本控制。
如何将此存储库与 go dep 一起使用?
我正在尝试切换到 go dep 进行依赖管理,但我无法说服它下载此存储库并执行 "go generate"。
Solving failure: No versions of github.com/company/protobuf met constraints:
master: Could not introduce github.com/company/protobuf@master, as it is not allowed by constraint vendoring from project github.com/company/myProject.
develop: Could not introduce github.com/company/protobuf@develop, as it is not allowed by constraint vendoring from project github.com/company/myProject.
vendoring: Could not introduce github.com/company/protobuf@vendoring due to multiple problematic subpackages:
Subpackage github.com/company/protobuf/ptypes/package1 is missing. (Package is required by (root).)
Subpackage github.com/company/protobuf/ptypes/package2 is missing. Package is required by: (root)
go dep 发现了正确的存储库(vendoring-branch),但由于找不到所需的子包而将其丢弃。它们仅在根包中调用 "go generate" 后出现。
来自关于 migration 的 godep 文档:
dep assumes that all generated code exists, and has been committed to
the source.
因此,似乎无法如愿以偿。解决方案是创建一个包含生成源的存储库,并确保这些源自动生成并与实际源数据保持同步(在我的例子中是原始 *.proto 文件)。
由于我无法将生成的源与源数据放在同一个仓库中,所以有必要将这两个仓库完全同步(相同的分支,相同的标签),这样go dep使用的版本在某种程度上是有用的与实际存储库相比,仅包含声明。
如何添加自动生成的 Go 依赖项?
我有一个 protobuf 存储库,其根目录中有一个 go 文件,其中包含以下内容:
//go:generate ./scripts/generate_go_sources.sh
package protobuf
上述脚本遍历 "message/" 子文件夹中的所有 .proto
文件,并生成 go-sources。
之后,存储库包含很多子包,如
ptyes/package1/file.go
ptyes/package2/file.go
我不想将这些文件签入版本控制。
如何将此存储库与 go dep 一起使用?
我正在尝试切换到 go dep 进行依赖管理,但我无法说服它下载此存储库并执行 "go generate"。
Solving failure: No versions of github.com/company/protobuf met constraints:
master: Could not introduce github.com/company/protobuf@master, as it is not allowed by constraint vendoring from project github.com/company/myProject.
develop: Could not introduce github.com/company/protobuf@develop, as it is not allowed by constraint vendoring from project github.com/company/myProject.
vendoring: Could not introduce github.com/company/protobuf@vendoring due to multiple problematic subpackages:
Subpackage github.com/company/protobuf/ptypes/package1 is missing. (Package is required by (root).)
Subpackage github.com/company/protobuf/ptypes/package2 is missing. Package is required by: (root)
go dep 发现了正确的存储库(vendoring-branch),但由于找不到所需的子包而将其丢弃。它们仅在根包中调用 "go generate" 后出现。
来自关于 migration 的 godep 文档:
dep assumes that all generated code exists, and has been committed to the source.
因此,似乎无法如愿以偿。解决方案是创建一个包含生成源的存储库,并确保这些源自动生成并与实际源数据保持同步(在我的例子中是原始 *.proto 文件)。
由于我无法将生成的源与源数据放在同一个仓库中,所以有必要将这两个仓库完全同步(相同的分支,相同的标签),这样go dep使用的版本在某种程度上是有用的与实际存储库相比,仅包含声明。