go安装以及使用gomod、 goland设置

一、 安装go

       1. 官网下载go安装包,按照指引安装即可,

       2. 推荐使用go1.12版本 ,它新增加了go mod用来管理依赖,并且不需要我们再刻意设置gopath环境变量

       3. 默认go会将$HOME/go目录作为gopath,所有项目下载的依赖包都会存放在这个目录下,我们不用再关心它。

           与python pip类似,默认pip会将$HOME/.pip这个目录作为缓存目录,go会将$HOME/go作为缓存目录,在这个目录同样可以更改,只需要在环境变量设置即可,如下:

       4. 由于墙的原因,部分官方依赖无法下载,我们可以使用代理,设置如下:

linux:
export GOPATH=/usr/local/gopath
export GOPROXY=https://goproxy.io


windows: 添加环境变量
GOPATH
=D:\gopath
   GOPROXY=https://goproxy.io

 

二、 使用go mod

        1. 任意目录创建项目目录

            mkdir /home/mygo

        2. 进入到项目目录

           cd  /home/mygo

        3. 初始化生成go.mod 文件

           go mod  init mygo   (这里mygo名字也可以叫其他名字,一般为了与项目名称对应,就用项目名字)

        4. 项目目录下会生成go.mod文件, 类似于python的requirements.txt文件。同时也生成一个go.sum文件,主要记载了下载包的哈希值用于校验,我们用不到。

        5. go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。

            go toolchain会在各类命令执行时,比如执行go get、go build、go run、go mod等命令时,自动修改和维护go.mod文件,这点跟pip还是有区别的

        6. go.mod 提供了modulerequirereplaceexclude 四个命令

  •   module 语句指定包的名字(路径)
  •   require 语句指定的依赖项模块
  •   replace 语句可以替换依赖项模块
  •   exclude 语句可以忽略依赖项模块
  • $ cat go.mod
    
    module mygo
    
    go 1.12
    
    require (
        github.com/labstack/echo v3.3.10+incompatible // indirect
        github.com/labstack/gommon v0.2.8 // indirect
        github.com/mattn/go-colorable v0.1.1 // indirect
        github.com/mattn/go-isatty v0.0.7 // indirect
        github.com/valyala/fasttemplate v1.0.0 // indirect
        golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a // indirect
    )

     

        7. 可以使用命令 go list -m -u all 来检查可以升级的package,

            使用go get -u need-upgrade-package 升级后会将新的依赖版本更新到go.mod文件中。

            也可以使用 go get -u 升级所有依赖。

       8. 由于某些已知的原因,并不是所有的package都能成功下载,比如:golang.org下的包。

           可以在 go.mod 文件中使用 replace 指令替换成github上对应的库,来下载相应的包。比如:

          

replace (
    golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 => github.com/golang/cryptov0.0.0-20190701094942-4def268fd1a4
 )

或者:
replace golang.org
/x/crypto v0.0.0-20190701094942-4def268fd1a4 => github.com/golang/crypto v0.0.0-20190701094942-4def268fd1a4

     9. 设置goland

      https://www.cnblogs.com/congccy/p/10762257.html

posted @ 2019-08-12 15:23  明天OoO你好  阅读(...)  评论(...编辑  收藏