• 在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项目时非常有用。

  • 相关阅读:
    设计模式的原则和法则
    GoF的23种设计模式分类和功能
    2020年智慧电力解决方案
    【转载】「黑科技」智能防疫消毒机器人 技术方案介绍-disinfection robot
    【转载】如何让电力巡检机器人项目落地
    30多张图来了解Keil5的使用
    [数学学习与代码]最小二乘法--多元线性方程求解
    MTK-LCM 屏幕使用fbconfig/PanelMaster来调试LCM驱动
    MTK 使用iptable 命令来完成网络路由(android WIFI/4G分享网络)
    MTK(android init.rc) 写一个开机启动的服务
  • 原文地址:https://www.cnblogs.com/sening/p/12200321.html
Copyright © 2020-2023  润新知