问题标签 [go-generate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1258 浏览

go - Go generate 只扫描 main.go

从项目目录的根目录运行 go generate 时,我在使用 go generate 生成 grpc 服务器时遇到了一些问题。

当我运行go generate -v它只返回main.go. 但是,这些指令是在一个子包中定义的。如果我go generate在子包中运行,它会按预期工作。我希望导入能够确保go generate找到子包并运行指令。

该项目具有以下结构:

subpkg.go 的内容

main.go 的内容:

在 run.go 包中,我导入包 subpkg。

如何确保 go generate 可以从项目的根目录运行并执行所有子包中的所有指令。

0 投票
0 回答
105 浏览

go - gqlgen:生成了不需要的解析器

我正在使用gqlgen,我想向查询解析器添加一个新方法。添加的方法如下所示:

for 的类型Foo已经在文件中声明,并且被正确映射到.go文件中的模型(我知道这是因为以前使用该类型的方法)。当我尝试从上述添加生成代码时,FooResolver会在ResolverRoot.

任何想法为什么会这样?

0 投票
1 回答
512 浏览

go - 通过 import 生成基于 protobuf 的 go 文件

我有两个 git 存储库:

common 这个存储库包含 protobuf 文件(.proto),这些文件应该通过 git submodule init 从其他供应商存储库中获取。还有带有指令的 go 文件://go:generate protoc --proto_path=a/xxx --go_out=。--go_opt=paths=source_relative a/xxx/b.proto

main 这个存储库包含 main 项目,它从 common 导入包。然后我调用 git submodule update --init 和 go generate。生成后我可以看到日志: go:finding github.xxx.com/xxx latest

但是主go文件显示一些问题: build github.xxx.com/main: cannot load github.xxx.com/xxx/proto: module github.xxx.com/common@latest found, but does not contain package github.xxx .com/xxx/proto

似乎 go generate 命令不会生成 proto 文件。我想如果我导入一些东西,那么这些文件就在缓存​​中的某个地方。我不确定我的方法是否可行。

你能告诉我这个解决方案是否可行或者我应该改变什么。

0 投票
2 回答
842 浏览

go - GoLand 未运行任何测试

我有一个正在测试的方法,一切似乎都很好。但是,当我在 GoLand 中运行测试时,我可以在输出中看到测试“通过”但测试运行器说“没有运行测试”。

这是示例方法calculator.go

这是 中的测试calculator_test.go

我究竟做错了什么?

0 投票
1 回答
105 浏览

c - Stringer 无法使用来自 C 枚举的值生成常量

我正在尝试在本地运行generateCGO 项目https://github.com/libgit2/git2go 。我已经成功安装了系统库,并且可以使用和libgit2构建和测试项目。go build -tags static,system_libgit2go test -tags static,system_libgit2

当我尝试使用stringer. 我显示的代码位于 master 分支中,所以我想它应该可以正常工作,问题就在我这边。

文件diff.go有 stringer 注释(删除了不重要的部分):

此类型引用libgit2C 枚举,即/usr/include/git2/diff.h

当我运行命令时go generate出现错误:

我试图运行这些命令:

  • go generate ./diff.go
  • go generate -tags static,system_libgit2
  • go generate -tags static,system_libgit2 ./diff.go

但它总是显示相同的错误。

如何正确生成带有来自 C 枚举值的 Go 常量的 stringer 文件?

0 投票
0 回答
26 浏览

go - gqlgen Resolver func 在生成的代码中缺少 OrderBy 参数

我是新来的。我正在使用 gqlgen 和 ent 构建一个项目。我有 schema.graphql 定义如下

成功生成代码后,我看到 AppQueryResolver.Response 和 IP.queries 的函数在生成的代码中缺少after: Cursor, first: Int, before: Cursor, last: Int ...的参数。我已经根据示例项目审查了架构,但看不到可能导致此问题的原因。在代码生成过程中也没有错误。有关在何处进一步寻找解决此问题的任何指示

0 投票
0 回答
37 浏览

go - go:generate stringer 未声明的名称:CONST

我使用 stringer 为不同类型生成 String() 方法,并将输出目录放在stringer/

但纵梁不识别包,因此生成

代替

是否有任何解决方法或方法可以帮助我在不同的目录中生成代码?

0 投票
0 回答
38 浏览

go - 从配置生成不同请求类型的代码

我有一个应用程序向不同的 url 发出大量请求。他们每个人都有不同的请求和响应结构。

位于 Mysql 数据库中的请求类型的配置。

它包含下一个数据:

  • 网址
  • 方法
  • 查询参数
  • 身体参数
  • 标头
  • 响应结构

因此,在我使用 Node.js 做这件事之前,很容易为此制定解决方案。

但是对于 Go,我看到了为此使用反射包的唯一方法。但反映会损害应用程序的性能。

有没有一种简单的方法可以为此生成代码?

请求配置示例:

用户示例:

并且在输出中应该发出下一个请求:

在正文中可能会使用参数的路径。

是否有自动生成此类代码的工具?

0 投票
1 回答
35 浏览

go - 在构建阶段生成

在诸如 gradle 或 blaze 之类的构建系统中,我可以在构建阶段生成代码(ent 或 proto),而无需添加到存储库中。

是否可以对go build命令执行相同的操作?