当前位置: 首页 > news >正文

go 包管理

Go语言所依赖的所有的第三方库都放在GOPATH目录下面
gomodule是Go语言默认的依赖管理工具
Modules是相关Go包的集合,是源代码交换和版本控制的单元,用于指定使用哪些源文件

GO111MODULE=off禁用gomodule,编译时从GOPATH和vendor文件夹中查找包
GO111MODULE=on启用gomodule,编译时会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖
GO111MODULE=auto,当项目在GOPATH/src目录之外,并且项目根目录有go.mod文件时,开启gomodule

通常将 GO111MODULE=on 设置为on 
#go env -w GO111MODULE=on30.1 本地导入包
若工程文件目录结构如下
myfirstpro
    --main/hello.go
    --utils/utils.go
    
main文件夹下创建hello.go

 package mainimport ("fmt""myfirstpro/utils")func init() {fmt.Println("pkg1--init")}func main() {utils.PrintStr()fmt.Println("start...")fmt.Println("end.")}


    
utils文件夹下创建utils/utils.go
   

package utilsimport ("fmt")func PrintStr() {fmt.Println("PrintStr")}

Go Module(需要GO111MODULE=on)
在myfirstpro工程下打开终端输入下面命令
go mod init myfirstpro  //创建go.mod文件
go mod tidy        //把项目所需要的依赖添加到go.mod,并删除go.mod中,没有被项目使用的依赖

30.2 远程导入包
导入 github.com/gin-gonic/gin
hello.go 文件中添加
import "github.com/gin-gonic/gin"

终端下输入下面命令,包自动下载到 GOPATH下的pkg/mod 下面,同时更新 go.mod go.sum文件
go get github.com/gin-gonic/gin
或者 go mod tidy 自动下载依赖


30.3 别名
若报名很长或者包名冲突,可设置包的别名
import myAliasName "package_name"

30.4 匿名导入
导入了包,但不使用 ,此时依然会触发包的init函数
import _ "package_name"


            
            
            
    
        
        
 

http://www.lryc.cn/news/475067.html

相关文章:

  • Js内建对象
  • AXI接口的实现逻辑和底层原理,在FPGA中如何实现AXI接口,一篇文章足以搞明白!!!
  • 《GBDT 算法的原理推导》 11-12计算损失函数的负梯度 公式解析
  • mysql设计
  • Android 斗鱼面经
  • 【机器学习】26. 聚类评估方法
  • linux 最多能创建多少个 TCP 连接?
  • 我为何要用wordpress搭建一个自己的独立博客
  • Linux系统每日定时备份mysql数据
  • 书生大模型第一关Linux基础知识
  • 机器学习之fetch_olivetti_faces人脸识别--基于Python实现
  • 【系统设计】深入理解HTTP缓存机制:从Read-Through缓存到HTTP缓存的交互流程
  • FLINK单机版安装部署入门-1
  • 深度学习-学习率调整策略
  • 【学员提问bug】小程序在onUnload里面调接口,用来记录退出的时间, 但是接口调用还没成功, 页面就关闭了。如何让接口在onUnload关闭前调用成功?
  • 【刷题13】链表专题
  • Python Turtle模块详解与使用教程
  • 【PTA】4-2 树的同构【数据结构】
  • Node.js——fs模块-同步与异步
  • Java基于微信小程序的私家车位共享系统(附源码,文档)
  • vscode 创建 vue 项目时,配置文件为什么收缩到一起展示了?
  • PySpark任务提交
  • 【果蔬购物商城管理与推荐系统】Python+Django网页界面+协同过滤推荐算法+管理系统网站
  • 【大模型】海外生成式AI赛道的关键玩家:OpenAI、Anthropic之外还有谁?
  • kubevirt cloud-init配置
  • Oracle 大表添加索引的最佳方式
  • 速度了解云原生后端!!!
  • 云计算Openstack 虚拟机调度策略
  • 在 macOS 上添加 hosts 文件解析的步骤
  • RHCE【防火墙】