登录
首页 >  Golang >  Go问答

可下载的依赖项如何辨别?

来源:stackoverflow

时间:2024-03-27 19:48:28 223浏览 收藏

从现在开始,努力学习吧!本文《可下载的依赖项如何辨别?》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我使用此代码来获取在单个 go 源文件中导入的依赖项列表:

// getfileimports returns all the imports from the golang source code file.
func getfileimports(filepath string) ([]string, error) {
    fset := token.newfileset()
    file, err := parser.parsefile(fset, filepath, nil, parser.importsonly)

    if err != nil {
        return nil, err
    }

    imports := make([]string, len(file.imports))

    for i := range file.imports {
        imports[i] = strings.trim(file.imports[i].path.value, "\"")
    }

    return imports, nil
}

我得到这个列表:

namoled-core/data
namoled-core/shared
encoding/json
fmt
io/ioutil
log
net/http
github.com/gorilla/mux
github.com/gorilla/websocket

其中 namoled-core/datanamoled-core/shared 是我自己项目的一部分,github.com/gorilla/muxgithub.com/gorilla/websocket 是可下载的依赖项,其余的都是标准库依赖项。是否有一种可靠且明确的方法可以仅通过导入路径来区分当前项目、可下载依赖项和标准库依赖项的依赖项?考虑到项目路径也可能是 github 链接。


解决方案


如果您使用的是 Go 模块,则可以使用 go.sum 文件的内容从您的方法提供的响应中过滤出可下载的依赖项。

编辑:要记住的一件事是导入与包相关,而可下载依赖项与模块相关。一个模块由多个包组成,包的模块名称作为前缀。因此,您可能需要在 go.sum 文件中查找作为您的方法返回的包名称前缀的条目。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《可下载的依赖项如何辨别?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>