Golang之GoPath(工作目录)与Modules(包管理)的比较

本文探讨了Go语言中的GoPath和Go Modules两种包管理方式。GoPath是传统的工作目录,用于存放项目和第三方包,但在多项目环境下可能导致版本冲突。Go Modules则提供了更精细的版本控制,通过go mod命令初始化和管理依赖,解决了GoPath的不足。推荐使用Go Modules进行统一管理。
摘要由CSDN通过智能技术生成

GoPath

GOPATH 是 Go语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录。

工作目录是一个工程开发的相对参考目录,好比当你要在公司编写一套服务器代码,你的工位所包含的桌面、计算机及椅子就是你的工作区。工作区的概念与工作目录的概念也是类似的。如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样会导致开发的标准不统一,影响开发效率。

采用go env可以查看GoPath的路径, 在程序中import导的包 通过 go get 就会下载到GoPath中。GoPath可以设置多个、按顺序查找jar包。先找GoRoot,然后按照GoPath的顺序找。

Gopath会将包文件下载到你配置的GOPATH环境变量的src文件夹下(如果没有配置modules的情况下)。

在这里插入图片描述

Golang默认使用GoPath来管理第三方包(类似于Java中的Jar包),GoPath 有一个很严重的问题, 当你本地开多个项目的时候,没法让不同项目对应不同的jar包版本。如果引入的jar版本是不向下兼容的话,那开发的时候都可能会出现很多问题。比如我的jar有这个方法,你的没有,很容易出问题。

像Java的maven可以配置jar版本在pom.xml中,而go

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值