windows环境下go module的使用和goland配置

Golang学习之路 连载一 Windows使用go mod命令及Goland配置

tips:

一、安装Golang

二、Golang项目目录结构

  1. 使用GOPATH项目目录配置
    __
      |_ bin  # 编译后生成的可执行文件
      |_ pkg  # 编译后生成的文件
      |_ src  # 代码文件夹
        |_ tets_go_mod
    
  2. 使用go mod管理目录配置
    __
      |_ tets_go_mod  # 存放源代码
    

三、go mod命令解释

命令含义
go mod download下载依赖的module到本地cache
go mod edit编辑go.mod文件
go mod graph打印模块依赖图
go mod init当前文件夹下初始化一个新的module, 创建go.mod文件
go mod vendor将依赖复制到vendor下
go mod tidy增加丢失的module,去掉未用的module
go mod verify校验依赖
go mod why解释为什么需要依赖

四、go mod命令初始化一个项目

  1. 新建项目目录mkdir test_go_mod并进入到项目目录cd test_go_mod

  2. 开启module功能,执行命令set GO111MODULE=on

  3. 初始化项目module,执行命令go mod init test_go_mod

     tets_go_mod  # 代码文件夹
       |_ go.mod
    
  4. 新建go文件main.go

    // main.go
     package main
    
     import "fmt"
    
     func main()  {
       fmt.Println("test_go_mod")
     }
    

    文件夹结构

     __
      |_ tets_go_mod  # 代码文件夹
          |_ go.mod
          |_ main.go
    
  5. 运行go run main.go,控制台输出test_go_mod

  6. 下载依赖,本文使用gin演示,go get -u github.com/gin-gonic/gin,修改main.go内容。

     package main
    
     import (
       "github.com/gin-gonic/gin"
     )
    
     func main() {
       r := gin.Default()
       r.GET("/ping", func(c *gin.Context) {
         c.JSON(200, gin.H{
           "message": "pong",
         })
       })
       _ = r.Run() // listen and serve on 0.0.0.0:8080
     }
    

    文件夹结构

     __
      |_ tets_go_mod  # 代码文件夹
          |_ go.mod
          |_ go.sum
          |_ main.go
    
  7. 执行go run main.go

    • 报错build command-line-arguments: cannot load github.com/gin-gonic/gin: open xxx: The system cannot find the path specified
    • 需要先执行go mod vendor,将依赖复制到vendor下
    • 执行go run main.go,访问http://localhost:8080/ping,返回{"message":"pong"}

五、使用代理,解决某些包被墙

上述第六步下载包的时候,可能会出现某些依赖包无法下载的情况,被墙了。因此,网上主要有两种解决方法,一个是去github克隆下载包到指定的位置,另外一直就是使用代理。本文使用代理解决包无法下载的问题,具体解决方法如下:

  1. golang的版本要大于等于1.11
  2. 使用https://goproxy.io/代理golang包下载。
  3. 下载包之前开启set GO111MODULE=on,设置代理set GOPROXY=https://goproxy.io
  4. 下载包即可,如果还是不行,建议重新安装最新版本的golang或者使用克隆的库的方法

六、完整流程及Goland配置

  • 完整流程

    1. 新建项目目录并进入打开shell
    2. set GO111MODULE=on
    3. set GOPROXY=https://goproxy.io
    4. go mod init test_go_mod
    5. go get -u github.com/gin-gonic/gin
    6. 编写main.go文件
      package main
      
      import (
        "github.com/gin-gonic/gin"
      )
      
      func main() {
        r := gin.Default()
        r.GET("/ping", func(c *gin.Context) {
          c.JSON(200, gin.H{
            "message": "pong",
          })
        })
        _ = r.Run() // listen and serve on 0.0.0.0:8080
      }
      
    7. go mod vendor
    8. go run main.go
  • Goland配置

    1. 找到 菜单栏 -> File-> Settings -> Go -> Go Modules(vgo) 选项
    2. 打开 Enable Go Modules(vgo) integration
    3. 打开 Vendoring mode
    4. 最后点击 apply 即可

总结

  • 解决golang某些包无法下载问题
  • Goland启用go module配置
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值