为了账号安全,请及时绑定邮箱和手机立即绑定

如何列出 Go 中所有非标准/自定义包?

如何列出 Go 中所有非标准/自定义包?

Go
繁星点点滴滴 2023-07-31 15:12:08
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/...)。


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信