• Golang modules包依赖管理工具


    初始化

    执行go mod  init module-name,其中module-name为包名字,执行完后会生成go.mod文件,如下

    module module-name
    
    go 1.13

    拉取依赖

    go get ***

    如:go get  github.com/jinzhu/gorm

    更多参数

    用 go get 拉取新的依赖
    拉取最新的版本(优先择取 tag):go get golang.org/x/text@latest
    拉取 master 分支的最新 commit:go get golang.org/x/text@master
    拉取 tag 为 v0.3.2 的 commit:go get golang.org/x/text@v0.3.2
    拉取 hash 为 342b231 的 commit,最终会被转换为 v0.3.2:go get golang.org/x/text@342b2e
    用 go get -u 更新现有的依赖
    用 go mod download 下载 go.mod 文件中指明的所有依赖
    用 go mod tidy 整理现有的依赖
    用 go mod graph 查看现有的依赖结构
    用 go mod init 生成 go.mod 文件 (Go 1.13 中唯一一个可以生成 go.mod 文件的子命令)
    用 go mod edit 编辑 go.mod 文件
    用 go mod vendor 导出现有的所有依赖 (事实上 Go modules 正在淡化 Vendor 的概念)
    用 go mod verify 校验一个模块是否被篡改过
    

    包管理

    使用go build,go test以及go list时,go会自动得更新go.mod文件,将依赖关系写入其中。

    如果想手动处理依赖关系,那么使用如下的命令:

    go mod tidy

    初始化项目

    go get拉取新的依赖,如引入go-gin

    go mod init github.com/jihite/go-gin-example

    执行完后,go.mod如下

    module github.com/jihite/go-gin-example
    
    go 1.13
    
    require (
        github.com/gin-gonic/gin v1.5.0
        github.com/go-playground/universal-translator v0.17.0 // indirect
        github.com/golang/protobuf v1.3.3 // indirect
        github.com/json-iterator/go v1.1.9 // indirect
        github.com/leodido/go-urn v1.2.0 // indirect
        github.com/mattn/go-isatty v0.0.12 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
        github.com/modern-go/reflect2 v1.0.1 // indirect
        golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 // indirect
        gopkg.in/go-playground/validator.v9 v9.31.0 // indirect
        gopkg.in/yaml.v2 v2.2.8 // indirect
    )

    其中indirect 是非直接依赖

    同时多了go.sum文件,如下

    github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
    github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
    github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
    github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
    github.com/gin-gonic/gin v1.5.0 h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc=
    github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=

    go.sum罗列了当前项目直接和间接依赖的所有模块版本,格式

    模块 版本号 SHA-256 哈希值

    安装制定依赖

    go get -u github.com/smartwalle/dbs 

  • 相关阅读:
    Codeforces_462_B
    Codeforces_460_B
    Codeforces_456_A
    2016.11.27
    Buy the Ticket{HDU1133}
    高精度模板
    盐水的故事[HDU1408]
    测试你是否和LTC水平一样高[HDU1407]
    完数[HDU1406]
    Air Raid[HDU1151]
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/12261395.html
Copyright © 2020-2023  润新知