pkgs, err := packages.Load(nil, pattern)例如,如果pattern = "std"then 它返回所有标准包。但是,如果我想获取具有自定义模式的自定义/用户定义包的列表,例如仅表单的供应商文件夹,github.com/X/Y/vendor/...那么我该如何指定该模式呢?我尝试过使用/vendor/,以及函数中的github.com/X/Y/vendor/一些其他组合。他们都没有工作。patternLoad()
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
...
您可以在pattern
函数字段中使用语法Load()
。
例子
我的 Go 模块需要github.com/hashicorp/go-multierror
包:
module mymodule require github.com/hashicorp/go-multierror v1.0.0
所以,下面的代码:
package main
import (
"fmt"
"golang.org/x/tools/go/packages"
)
func main() {
pkgs, err := packages.Load(nil, "github.com/hashicorp...")
if err == nil {
for _, pkg := range pkgs {
fmt.Println(pkg.ID)
}
}
}
返回以(甚至是传递性的)开头的所有必需的包github.com/hashicorp:
github.com/hashicorp/errwrap
github.com/hashicorp/go-multierror
请注意,您还可以...在模式中的任何位置使用 ( ...hashicorp..., ...ha...corp..., github.com/...)。
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消