首页 > 编程知识 正文

golang gopath,go sqlite3

时间:2023-05-03 15:43:33 阅读:129128 作者:3686

一)前言可以输入go env查看go环境变量

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

工作目录:工程开发的相对参考目录。 工作区的概念与工作目录的概念类似。 如果不使用工作目录概念,则多人开发时,每个人都有自己的目录结构,读取配置文件的位置不统一,输出的二进制可执行文件也不统一,从而影响开发效率

使用GOPATH的工程结构:

在GOPATH中指定的工作目录下,代码始终保存在$GOPATH/src目录下。 项目收到go build、go install或go get等指示后,生成的二进制可执行文件位于$GOPATH/cdxf目录中,生成的中间缓存文件存储在$GOPATH/pkg中

如果需要将整个源代码添加到版本控制工具(VCS )中,只需添加$GOPATH/src目录中的源代码。 可以从src目录生成cdxf和pkg目录的内容。

其中,

全局GOPATH表示全局GOPATH,通常来自系统环境变量的GOPATH; Project GOPATH表示项目中使用的GOPATH,该设置存储在工作目录的. idea目录中,未设置为环境变量的GOPATH,但在编译时使用。 建议在开发时仅填写项目GOPATH,为每个项目尽可能仅设置一个GOPATH,而不要使用多个GOPATH和全局GOPATH。

(三) GOROOT GOROOT是go语言的安装路径,安装在/usr/local/go下

可以看到src、cdxf、pkg三个文件夹,

的标准Go语言代码库包含大量软件包,安装Go时,大多数情况下会自动安装在系统上。 您可以在$GOROOT/src/pkg目录中查看这些软件包。 当我们内置import软件包时,不需要额外的安装。 程序运行时,首先到GOROOT下查找并运行相应的软件包。

注:

1、如果需要运行golang程序以获取导入软件包,编译器将首先前往GOROOT路径下的src文件夹,以查找程序中是否有导入软件包

2、如果在GOROOT下找不到,在GOPATH下src下找这个包

所以只要在GOROOT和GOPATH下找不到包,就报告错误

GOPATH的缺点:

如果第三方软件包不是官方库,则必须将其放在GOPATH/src下才能使用

通常,使用go get命令获取第三方软件包

go get是我们使用别人想向github公开的包,从网上的clone到GOPATH/src使用时间最长的。

听起来方便吗? 它使src下的项目变得复杂,除了自己的项目外,还有第三方库项目。

如果我们的每个项目都采用不同版本的第三方库怎么样? 在go1.11之前,安装了最大组的不同GOPATH。 go社区也开发了相应的软件包管理工具(如Vender、Dep等)来解决此问题,但它们不是官方的。

四. GOMOD Go Modules类似于java的maven。 将第三方库放在本地空间中,但不会自动下载软件包

使用以下命令打开或关闭go mod

oenv-wgo111module=onon

go env-w go 111模块=关闭

go 111模块有三个不同的值

自动

如果存在go.mod文件或位于GOPATH之外,其行为与GO111MODULE=on相同。 这意味着在Go 1.13和更高版本中,所有代码仓库都可以保存在GOPATH下。 如果位于GOPATH中,并且go.mod文件不存在,则其行为与GO111MODULE=off相同。 开启

即使项目位于您的GOPATH中,GO111MODULE=on也会强制使用Go模块。 go.mod必须正常运行

关闭

强制Go表示GOPATH方式,即使在GOPATH之外。

下载的第三方库在哪里? 其实在GOPATH/pkg/mod文件夹中

要使用gomod进行包管理,必须在项目根目录下运行

go mod init module name

然后,可以进行go get ***、import等操作! 水平。

gomod使用流程

1设定环境变量

go env -w GO111MODULE=on

go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

2谷歌打开go mod

使用3 go get

使用go module后,go get获取依赖关系的方式发生了变化

下载项目为go get ./. (首选tag ) go get golang.org/x/text@latest )主分支的最新commitgo get golang.org/x/text@master拉动tag为v0.3.2的commitgogetgolang.org/x/text @ v0.3. 2的commit,最终v0.3.2: gogetgolang.org

初始化模块。 模块名称是你的项目名称

将go mod init模块名称modules下载到本地cache。 当前,所有模块版本的数据都缓存在$GOPATH/pkg/mod和$GOPATH/pkg/sum中

go mod download 5 mod高级操作

更新为最新版本

gogetgithub.com/gogf/gf @ version 6增加丢失的数据包,删除未使用的数据包

见go mod tidy五: https://www.Jian Shu.com/p/a 244 f 48 f 49 b 3

3359砖局域网. zhi Hu.com/p/103534192

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。