golang依赖管理之国防部的示例分析

  介绍

这篇文章主要介绍了golang依赖管理之国防部的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

golang依赖管理之mod

去很早就考虑了依赖管理的问题,内置<代码>去> dep 和<代码> 就滑是其中的佼佼者,到1.11了去官方终于推出了自己的依赖管理工具<代码> mod> 去国防部> 去国防部>

GO111MODULE

一个最大的变化是golang的项目终于不再依赖GOPATH美元<代码> 目录了,之前的项目由于<代码> 机进口制问题,所有项目都位于<代码> GOPATH美元/src/<代码>目录下,虽然也没有太大的问题,但总是让人感觉很怪,走1.11终于调整了这个问题,将代码从GOPATH美元<代码> 中迁出了,为了兼容之前研发模式,也仍然支持放到<代码>美元GOPATH> GO111MODULE 环境变量控制

<李>

<代码> GO111MODULE=了> 供应商目录和GOPATH美元<代码> 路径下的依赖

<李>

<代码> GO111MODULE=> 。国防部> <李>

<代码> GO111MODULE=汽车> 路径并且包含<代码>。国防部>

主要命令

go  mod  init ,,,, #,在新的,go 项目中执行,自动分析依赖,创建,go.sum   go  mod  tidy ,,,, #,自动分析依赖,并自动添加和删除依赖   go  mod  vendor ,, #,创建,vendor 目录,将依赖拷贝到当前的,vendor 文件夹下   go  mod  download  #,手动下载依赖 <李>

对于一个新去的项目,只需要新建项目的时候执行一下<代码>去国防部init

<李>

之后每次库更新,只需要先在代码中导入对应库,然后执行<代码>去国防部整洁> 去国防部下载手动下载)

库版本更换

手动修改<代码>。国防部文件中的需要字段,重新执行<代码>去国防部整洁> require  (   ,,还以为;github.com/gin-gonic/gin  v1.4.0   )

golang的版本使用以v <代码> 开头的三位版本号,其中第一位表示有重大本本的更新,当发布一个<代码> v2 + 版本的库时,<代码>模块我的模块> 模块我的模块/v2> +不兼容的> require  (   ,,还以为;github.com/lestrrat-go/file-rotatelogs  v2.2.0 +不相容的   )

解决GFW问题

因为一些原因,国内的网络访问不到golang.org上的库,好在大部分库在github上都有镜像,可以用<代码>替换命令设置镜像、下面是我碰到的一些库

replace  (   ,,还以为;cloud.google.com/go =祝辞;github.com/googleapis/google-cloud-go , v0.0.0 c8433c9aaceb——20190603211518   ,,,go.etcd.io/bbolt =祝辞;github.com/etcd-io/bbolt , v1.3.4 e135e5d7e3d——0.20191001164932 - 6   ,,还以为;go.uber.org/atomic =祝辞;github.com/uber-go/atomic , v1.4.1 ef0d20d85b01——0.20190731194737   ,,还以为;go.uber.org/multierr =祝辞;github.com/uber-go/multierr , v1.2.0   ,,还以为;go.uber.org/zap =祝辞;github.com/uber-go/zap , v1.10.1 d8445f34b4ae——0.20190926184545   ,,还以为;golang.org/x/crypto =祝辞;github.com/golang/crypto , v0.0.0 f99c8df09eb5——20190605123033   ,,还以为;golang.org/x/exp =祝辞;github.com/golang/exp , v0.0.0 efd6b22b2522——20190510132918   ,,还以为;golang.org/x/image =祝辞;github.com/golang/image , v0.0.0 f03afa92d3ff——20190523035834   ,,还以为;golang.org/x/lint =祝辞;github.com/golang/lint , v0.0.0 b441ac422——20190409202823 - 959   ,,还以为;golang.org/x/mobile =祝辞;github.com/golang/mobile , v0.0.0 - 20190607214518 - 6 - fa95d984e88   ,,还以为;golang.org/x/net =祝辞;github.com/golang/net , v0.0.0 cefac77f——20190606173856 - 1492   ,,还以为;golang.org/x/oauth3 =祝辞;github.com/golang/oauth3 , v0.0.0 f29369cfe45——20190604053449 - 0   ,,还以为;golang.org/x/sync =祝辞;github.com/golang/sync , v0.0.0 - 20190423024810 - 20190423024810 c58   ,,还以为;golang.org/x/sys =祝辞;github.com/golang/sys , v0.0.0 c4f7f33c9ed——20190602015325 - 4   ,,还以为;golang.org/x/text =祝辞;github.com/golang/text , v0.3.2   ,,还以为;golang.org/x/time =祝辞;github.com/golang/time , v0.0.0 d24e82272b4——20190308202827 - 9   ,,还以为;golang.org/x/tools =祝辞;github.com/golang/tools , v0.0.0 eacb66d2a7c3——20190608022120   ,,还以为;google.golang.org/api =祝辞;github.com/googleapis/google-api-go-client , v0.6.0   ,,还以为;google.golang.org/appengine =祝辞;github.com/golang/appengine , v1.6.1   ,,还以为;google.golang.org/genproto =祝辞;github.com/google/go-genproto , v0.0.0 eb0b1bdb6ae6——20190605220351   ,,还以为;google.golang.org/grpc =祝辞;github.com/grpc/grpc-go , v1.21.1   null   null

golang依赖管理之国防部的示例分析