golang配置远程开发,golang开发
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
背景
在Go1.10 之后golang不再支持 Windows XP操作系统
见 Go 1.10 Release Notes https://go.dev/doc/go1.10
Golang在1.11增加了模块管理功能mod,让使用和应用三方模块变得更加简单和方便。
环境搭建
为了编译能够支持XP操作系统的程序,需要下载Go1.10的SDK,并且使用GOPATH的方式进行包管理。
通过GO官方提供的历史归档下载,来下载go1.10 https://go.dev/dl/
在页面最下方找到归档的版本,然后找到1.10进行下载
由于我的电脑已经安装了GO1.17,这里我下载压缩包,通过解压和手动配置GOPATH的方式在使用这个SDK
原生模块管理
Go1.10 使用原生的模块管理方式也就是使用GOPATH,这种模式下我们需要注意:
所有的三方包都以源码的方式放到GOPATH/src下面。 当我们使用go get安装三方包时候时候,就是将这些包的源码下载到这个目录中。 我们在创建我们自己的项目时候,也需要将我们的项目放在这个目录下,这样我们项目中的各个包才能够正确的相互调用。由于我默认环境是1.17,这里需要手动设置GOPATH为一个自定义的路径,我手动创建一个在D:go1.10.windows-amd64gopath的目录作为GOPATH。
这里以GoLand为例进行配置示例,创建一个项目gopath
注意项目保存目录一定要在我们创建的那个GOPATH中的src目录下 选择 Go(GOPATH) 选择GO 1.10 的SDK创建完成后我们手动配置一下项目的GOPATH路径
在项目GOPATH中添加刚才创建的目录D:go1.10.windows-amd64gopath 取消使用系统环境中的目录关闭默认开始的Go Modules
简单添加一些代码进行包之间的导入运行测试。
Vendor模块管理
在1.5之后Golang支持使用Vendor作为模块管理,Vendor优点:
项目里可以使用与GOPATH中不同版本的三方库 可以系统的管理目前项目使用到的三方库vendor的管理方式与npm很相似,通过维护一个名为vendor.json,该文件内维护三方库的版本信息。
vender会在项目中创建一个名为vendor的目录,用于存放三方包,也就是项目自己的GOPATH。
目前由于Golang 11之后的mod非常好用,vendor已经停止维护,最后一个版本为1.9.0
https://github.com/kardianos/govendor/tree/v1.0.9
安装Vendor
安装完成后可以验证一下
注意vendor的使用同样需要我们将项目放置与GOPATH/src中。
以刚才的mylib为例,首先初始化vendor
该操作会在项目中生成一个名为vendor的目录,并且创建一个vendor.json文件描述了项目的信息以及依赖的包。
接下来添加一个三方库,以github.com/natefinch/lumberjack举例
如果需要拉取的是指定版本,那么在@后面增加相关的commit id或tag就可以。
下载安装完成后,我们就可以在vendor目录中看到这个包,相应的在vendor.json文件中也会多一条关于这个包信息。
接下来就可以在代码中使用三方的库了。
一个新的vendor进行管理的项目,可以使用下面命令下载相关依赖包
常见问题
Error: repo remote not secure
如果你正在使用的私有仓库没有使用https而是http那么在运行govendor fetch时候可能发生
这需要使用额外的insecure参数来许可vendor拉取不安全的包
缺包
vendor默认,情况下只会拉取目的地址的根路径下的文件,如果三方库含有复杂的包结构,那么会出问题,因此我们需要拉取整个项目,这个时候需要使用tree参数表示拉取整个项目。
参考文献
[1]. govendor . 2017.10 . https://github.com/kardianos/govendor/tree/v1.0.9 [2]. 掘金 . Go Vendor 使用指南 . 零度David . 2020.08 . https://juejin.cn/post/6860377811488604168
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com