Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

GO 项目依赖管理:go module总结

Posted on 2023年9月19日 by hackdl

转载请注明出处:

1.go module介绍

  go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用 go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用go module之后我们可不用将代码放置在src下 使用 go module 管理依赖后会在项目根目录下生成两个文件 go.mod(会记录当前项目的所依赖)和go.sum(记录每个依赖库的版本和哈希值)

  包管理工具go mod具有以下特性:

    1)自动下载依赖包,即第三方包。

    2)自定义包无须放在GOPATH设置的路径。

    3)第三方包或自定义包写在go.mod文件中,通过go.mod文件管理包。

    4)已经转移的第三方包或自定义包,在go.mod文件中使用replace替换,不需要修改代码。

    5)对第三方包指定版本号。

2.GO111MODULE配置

  GO111MODULE 是 Go 1.11 版本后引入的模块管理功能。使用 GO111MODULE 可以让 Go 语言项目获得更好的包管理和版本控制功能。 GO111MODULE 的配置有以下几种:

  1. auto:在 $GOPATH/src 之外的项目和使用了 Go 1.11 之前的依赖管理方式的项目开启模块支持,其他项目不开启。当项目在 GOPATH/src 目录之外,并且项目根目录有 go.mod 文件时,才开启 go module。

  2. on:开启模块支持,无论项目是否在 $GOPATH/src 下。启用 go module,编译时会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖,这种模式称作module-aware模式,这种模式下,GOPATH不再在build时扮演导入的角色,但是尽管如此,它还是承担着存储下载依赖包的角色。它会将依赖包放在GOPATH/pkg/mod目录下。

  3. off:关闭模块支持,使用 GOPATH 和 vendor 目录作为依赖管理方式。 可以通过设置环境变量 GO111MODULE 或者在项目目录中创建 go.mod 文件来配置 GO111MODULE。

    GO111MODULE=off: 禁用 go module,编译时会在vendor目录下和GOPATH目录中查找依赖包。也把这种模式叫GOPATH模式

3.GO ROOT 与 GO PATH

  GOPATH

  GOPATH是Go语言的工作目录,它是一个环境变量,用于指定Go语言源代码、依赖库和可执行文件的存放位置。在Go语言中,所有的源代码都必须存放在GOPATH目录下的src子目录中,所有的依赖库和可执行文件则分别存放在GOPATH目录下的pkg和bin子目录中

  GOPATH的作用是指定Go语言源代码、依赖库和可执行文件的存放位置,并且在编译项目时自动查找相应的文件。

               

  通过go env查看go环境相关的配置,可以看到 GO111MODULE 没有设置,默认为关闭off,项目的go依赖文件下载到 go path 目录中对应的src文件夹下:

                     

  GOROOT

  GOROOT是Go语言的安装目录,它是一个环境变量,用于指定Go语言的安装路径。在Go语言中,所有的标准库都存放在GOROOT目录下的src子目录中,所有的可执行文件则存放在GOROOT目录下的bin子目录中。

4.环境配置设置

  Windows 下开启 GO111MODULE 的命令为:

set GO111MODULE=on 
set GO111MODULE=auto

  go 1.3版本之后,可以通过以下命令修改GO111MODULE:

go env -w GO111MODULE=on 
go env -w GO111MODULE=auto

  linux配置

# 开启模块支持
export GO111MODULE=on
# 关闭模块支持
export GO111MODULE=off

5.创建go.mod文件

  在项目目录中执行以下命令会自动创建 go.mod 文件:

go mod init 

  其中,module-name 是你的项目名称。 管理依赖仓库: 当 GO111MODULE 开启时,Go 语言会优先从 go.mod 文件中的模块信息中获取依赖库的版本信息,如果没有找到,则会去 GOPATH 和 vendor 目录下查找依赖库。 使用 go get 命令或者直接修改 go.mod 文件来管理依赖库的版本信息。例如:

# 使用 go get 命令安装依赖库(会自动更新 go.mod 文件)
go get -u github.com/gin-gonic/gin
# 直接修改 go.mod 文件
require (
    github.com/gin-gonic/gin v1.6.3
)

  可以使用以下命令来更新依赖库:

go mod tidy  # 移除不需要的依赖库
go mod vendor  # 将依赖库复制到 vendor 目录下
go mod download  # 下载依赖库

6.go.mod 文件说明

  如在mygo项目的目录下,输入go mod init mygo 指令即可在mygo下创建go.mod文件

  在mygo的go.mod中设置自定义包mpb的信息,mygo的go.mod代码如下

module mygo
    go 1.18
    require (
        mpb v0.0.0
    )
    replace mpb => ./mpb

  go.mod的代码说明如下:

    1)module mygo代表当前go.mod文件隶属于文件夹mygo。

    2)go 1.18代表当前Go语言的版本信息。

    3)require代表需要调用第三方包或自定义包,小括号里面一行代码代表一个包信息。

    4)mpb v0.0.0代表包的信息,mpb是包名,v0.0.0是当前包的版本信息。

    5)replace为require的包指定新的路径地址,常用于本地自定义包或第三方包的路径迁移,例如mpb => ./mpb代表自定义包mpb为当前路径的文件夹mpb。

 

  

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net

相关推荐: 文创商城项目实战

项目背景介绍 本项目我们将综合运用前面学习过的知识,基于前端 vue 框架来开发一个网上商城,商城的商品主要分为文创产品、助农产品、时代经典图书等,让同学们在学习前端知识的同时,能了解一些比较有创意想法的产品,感受我们国家的历史文化以及新时代思想。 项目功能介…

Related posts:

  1. 广州服务器 托管
  2. “高性价比云手机服务器托管公司” (48 characters)
  3. 离线数仓之Kerberos基本使用及问题记录
  4. 优质服务器租用托管,千捷网络值得信赖
  5. 合肥手机FTP服务器托管服务详解

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 基于TQ3568开发板分享如何配置GPIO功能为I2C_SPI_UART
下一篇: 一键部署你的私人 ChatGPT 网页版

最新更新

  • 1.4. 运算符与表达式
  • 网络安全(黑客)自学
  • 软件设计模式系列之九——桥接模式
  • ICL7106芯片的特性、应用与重要性 | 百能云芯
  • Java基本语法

随机推荐

  • 北京idc机房建设方案
  • Pod 资源调度策略概念详解(十二)
  • 西安服务器托管商主要有那几家
  • DolphinDB +Python Airflow
  • 租用乌鲁木齐机柜

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8