go 包管理

embedded/2024/11/4 17:45:53/

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.ppmy.cn/embedded/134586.html

相关文章

初识二叉树( 二)

初识二叉树 二 实现链式结构二叉树前中后序遍历遍历规则代码实现 结点个数以及高度等层序遍历判断是否为完全二叉树 实现链式结构二叉树 ⽤链表来表示⼀棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针…

java常用数据结构及其接口

Java 提供了丰富的集合框架及其数据结构,每个结构和接口都有独特的功能。以下是一些常用的数据结构和接口,以及它们的关键方法: ### 接口及其实现 1. **List 接口** - 实现类:ArrayList、LinkedList、Vector - 关键方法&a…

socket编程---UDP

目录 一、socket 二、socket接口 1.流程原理 2.代码 前言 提示:这里可以添加本文要记录的大概内容: socket编程又称套接字编程,指进行网络通信程序的编写 提示:以下是本篇文章正文内容,下面案例可供参考 一、soc…

UDP组播测试

支持组播的接口: ip a | grep MULTICAST 环回接口虽然显示不支持组播,实际也可以用于本地测试。 添加路由(非必须?): ip route add 239.0.0.0/24 via 10.10.10.206 dev eth0 开放防火墙: 查…

将机器人六轴坐标转为4*4矩阵(Opencv/C++)

已知机器人六轴坐标x,y,z,rx,ry,rz&#xff0c;其中xyz表示空间位置坐标&#xff0c;rx,ry,rz是欧拉角&#xff1b; 需要将这六个值转为4*4的矩阵以便后续其它处理运算。 代码如下&#xff1a; #include <opencv2/core.hpp> #include <iostream> #include <cm…

解决Redis缓存穿透(缓存空对象、布隆过滤器)

文章目录 背景代码实现前置实体类常量类工具类结果返回类控制层 缓存空对象布隆过滤器结合两种方法 背景 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库 常见的解决方案有两种&#xff0c;分别…

江协科技STM32学习- P30 FlyMCU串口下载STLink Utility

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

【缓存与加速技术实践】NoSQL之Redis部署安装与基础命令

文章目录 关系型数据库与非关系型数据库关系型数据库SQL定义SQL语句主流产品 非关系型数据库NoSQL定义主流产品 区别数据存储方式不同扩展方式不同对事务性的支持不同应用场景结构对比 补充 RedisRedis 的特点与优势Redis 的使用场景哪些数据适合放入缓存中&#xff1f;Redis 为…