总结:go项目打包部署

  • Post author:
  • Post category:其他


一、介绍

新接手一个服务,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 项目中,这是一种常见的代码组织方式,它有助于保持代码整洁,并确保代码的可测试性和可维护性。



版权声明:本文为w2009211777原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。