在vscode 之中使用 GO MOD
第一步在终端中使用go mod
export GO111MODULE=auto
mkdir -p /xxx/script/Batchdeployment/api
mkdir -p /xxx/script/Batchdeployment/package
# gopath 不要和项目目录有父子关系
echo $GOPATH
/xxx/script/Batchdeployment/package
cd /xxx/script/Batchdeployment/api
go mod init api
# script目录是vscode 工作空间的目录之一
# Batchdeployment 是项目目录
最终项目结构如下
GO111MODULE 有三个值:off, on和auto(默认值)
GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
- 当前目录在GOPATH/src之外且该目录包含go.mod文件
- 当前文件在包含go.mod文件的目录下面
- main.go 之中的代码如下
package main
import (
"fmt"
add "api/add"
"github.com/labstack/echo"
)
func main() {
res := add.AddData()
e := echo.New()
fmt.Println(e)
fmt.Println(res)
}
- sum.go中的代码如下
package add
// addData 计算两数只和
func AddData() int {
return 3 + 4
}
在api目录下面执行 go run main.go, go mod 会自动安装依赖到 $GOPATH 的 pkg目录下面
第二步在VS Code 中使用 go mod
在vscode 的script 目录下面新建 .vscode 目录,里面包含setting.json 和 launch.json,内容如下
setting.json
{
"code-runner.executorMap": {
"go": "go run",
"go.gopath": "/xxx/script/Batchdeployment/package",
"go.toolsGopath": "/xxx/script/Batchdeployment/package"
},
"code-runner.cwd": "/xxx/script/Batchdeployment/api",
"go.toolsGopath": "/xxx/script/Batchdeployment/package",
"go.inferGopath": false,
"go.gopath": "/xxx/script/Batchdeployment/package"
}
launch.json
{
"code-runner.executorMap": {
"go": "go run",
"go.gopath": "/xxx/script/Batchdeployment/package",
"go.toolsGopath": "/xxx/script/Batchdeployment/package"
},
"code-runner.cwd": "/xxx/script/Batchdeployment/api",
"go.toolsGopath": "/xxx/script/Batchdeployment/package",
"go.inferGopath": false,
"go.gopath": "/xxx/script/Batchdeployment/package"
}
code-runner.cwd : 是code-runner插件的配置,设置当前的项目目录 只和可以直接右键运行项目
go.toolsGopath: GOPATH for installing the Go tools using go.toolsGopath,简单说就是安装调试工具的目录,如果没有或者不存在默认安装 GOPATH,不过会造成 GOPATH 的目录杂乱
go.inferGopath: 如果会true,它会在当面目录向上级目录搜索src,并将src的上级目录设置为 GOPATH,反之亦然。此设置在处理具有不同gopath的不同Go项目时非常有用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现