踩坑记录
本地启动你的Go项目
00 min
2024-8-27
2024-9-10
password
tags
type
status
date
slug
summary
category
icon

背景

在公司开发中,每次提交代码到远程仓库,使用jenkins进行部署,再对接口进行测试,这个过程较为繁琐、效率低,有没有办法在本地直接测试,配置连接远程的~

环境配置

1. go mod

如果存在依赖拉不下来,确认一下是不是私有仓库,需要进行步骤三指定放行域名
Go 1.11版本引入了go modules作为官方的依赖管理工具。使用步骤如下:
  • 初始化模块:在项目根目录执行 go mod init 模块名
  • 添加依赖:直接在代码中 import 所需的包,然后运行 go mod tidy 自动下载依赖
  • 更新依赖:使用 go get -u 更新指定依赖或所有依赖

2. vendor 目录

可以将依赖包复制到项目的 vendor 目录中,确保项目的依赖版本固定。使用 go mod vendor 命令可以创建 vendor 目录。
另外需要配置国内代理,

3. 修改环境变量配置

  • GONOPROXY:不走代理
  • GONOSUMDB:指定不校验的模块
  • GOPRIVATE:私有模版代理
  • GOPROXY:https://goproxy.cn,开源仓库代理

启动项目

找到你的main函数,如果存在配置文件请指定,如果不知道配置文件在哪里,和同事确认一下是否有配置中心,有的话在配置中心copy一份即可

番外:启动Go主函数会发生什么?

  • 初始化:在执行 main 函数之前,Go 运行时会先完成一些初始化操作。这包括设置运行时环境、初始化内存分配器和垃圾回收器、以及加载必要的库和包。
  • 执行初始化代码
    • 每个包都有一个 init 函数。Go 在执行 main 函数之前,会先执行所有导入包的 init 函数。init 函数用于初始化包的状态或执行必要的启动代码。
    • 这些 init 函数的执行顺序是按照包的导入顺序决定的,确保包被正确初始化。
  • 调用 main 函数:一旦所有的初始化工作完成,Go 运行时系统会调用 main 包中的 main 函数。这个函数是程序的入口点,程序的主要逻辑通常从这里开始执行。
  • 程序执行
    • main 函数中的代码会按照编写的顺序依次执行。
    • 如果 main 函数有返回值(尽管 Go 语言的 main 函数实际上没有返回值),运行时系统会忽略它,但可以通过其他方式(如调用 os.Exit)来退出程序并设置退出状态码。
  • 清理和退出
    • 程序执行完 main 函数后,Go 运行时系统会进行必要的清理工作,包括释放资源、停止后台任务等。
    • 最终,程序将结束,返回操作系统,并传递退出状态码。
上一篇
composer install提示Access Deny
下一篇
Redis的那些事儿