总结:go项目打包部署

一、介绍

新接手一个服务,op-service,考虑到后期运维主要是换机器后要重新部署,所以这里整理下

二、包下载问题

由于默认从proxy.golang.org下载,而proxy.golang.org是google提供的服务,不翻墙的话访问不了,因此需要配置其它代理服务,以下修改下代理,配置成阿里的即可:

go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/

设置后,go get就可以下载代码依赖的库(依赖库介绍见第三点:go module介绍)了。

参考:golang gopm get -g -v 无法获取第三方库的解决方案 - 吾爱源码

三、go module

1、介绍

  • go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用。
  • go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等,使用go module之后我们可不用将代码放置在src下。
  • 使用 go module 管理依赖后会在项目根目录下生成两个文件 go.mod(会记录当前项目的所依赖)和go.sum(记录每个依赖库的版本和哈希值),具体可以看op-service项目。

2、GO111MODULE

GO111MODULE是 go modules 功能的开关,默认关闭,可通过设置GO111MODULE=on开启。

命令:go env -w GO111MODULE=on

3、Go mod使用方法

初始化模块:Go mod init <项目模块名称>
如op-service:

4、相关命令

Go mod命令
 go mod init ⽣成 go.mod ⽂件
 go mod download 下载 go.mod ⽂件中指明的所有依赖
 go mod tidy 整理现有的依赖
 go mod graph 查看现有的依赖结构
 go mod edit 编辑 go.mod ⽂件
 go mod vendor 导出项⽬所有的依赖到vendor⽬录
 go mod verify 校验⼀个模块是否被篡改过
 go mod why 查看为什么需要依赖某模块

四、go env修改

执行go env命令,可查看当前的环境变量的配置,如果想修改环境变量,可直接执行go env -w命令。

如:go env -w GOOS=windows

五、gopath

目前PC上我配置的gopath架构如下:

 

参考:GOPATH 详解_勤天的博客-CSDN博客_gopath 设置

六、vscode运行golang代码

虽然安装了code runner,但是运行main.go的时候会报错,如下:

 

后来使用方式:

在main.go所在的目录下执行命令:go build,执行后会生成xxx.exe可执行文件

然后双击打开即可。

十、main.go与main_test.go

在 Golang 项目中,`cmd` 目录下通常包含可执行程序的入口文件。关于 `main.go` 和 `main_test.go` 两个文件,它们的作用和区别如下: - `main.go`: 这是程序的主入口文件,里面定义了程序的执行逻辑,通常包括初始化配置、创建相关组件、处理命令行参数以及启动主程序等内容。当你运行 `go build main.go` 或 `go run main.go` 之类的指令时,编译器会执行这个文件所定义的逻辑。 - `main_test.go`: 这是程序主入口文件的测试文件,用于编写针对 `main.go` 中的函数和逻辑的单元测试和集成测试。`main_test.go` 通常包含一些测试用例,它们会被 Go 编译器执行,以验证 `main.go` 中的代码是否能够按照预期工作。你可以运行 `go test` 或者 `go test -v` 来执行这些测试。 总之,`main.go` 是程序的主要执行逻辑,而 `main_test.go` 是针对这个逻辑的测试代码。在 Golang 项目中,这是一种常见的代码组织方式,它有助于保持代码整洁,并确保代码的可测试性和可维护性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值