搭建Go语言开发环境

Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了。

下载

下载地址:https://golang.google.cn/dl/(Go官方镜像站)

安装

  1. windows安装(以win10为例)
    以默认路径一路点击下一步即可,打开终端窗口,输入go version命令,查看安装的Go版本。

  2. Linux下安装

wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
mkdir -p /usr/local/go  # 创建目录
tar -C /usr/local/go -zxf go1.11.5.linux-amd64.tar.gz. # 解压

配置环境变量: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;$HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

修改/etc/profile后要重启生效,修改HOME/.profile文件即可生效。 检查:

go version
  1. Docker下安装
docker pull golang

或者可以自己编写dockerfile自己构建自己的golang镜像,以下dockerfile为简单的示范:

FROM ubuntu:16.04
MAINTAINER yourname "[email protected]"

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 换国内源和安装wget
RUN sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list \
    && sed -i "s/security.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list \
    && apt-get clean \
    && apt-get update \
    && apt-get install -y wget \
    && rm -rf /var/lib/apt/lists/*

# 配置环境变量
ENV GOPATH=/go
ENV GO111MODULE=on
ENV GOROOT=/usr/local/go
ENV GOPROXY=https://goproxy.cn,direct
ENV PATH=$PATH:$GOROOT/bin:$GOPATH/bin

RUN wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz \
    # 创建目录
    && mkdir -p /go \
    \
    # 安装和配置
    && tar -C /usr/local -zxf go1.14.linux-amd64.tar.gz \
    \
    # 删除安装包
    && rm -rf go1.14.linux-amd64.tar.gz

# WORKDIR
WORKDIR /go

通过以下命令来构建

cp dockerfile /test    # 将dockerfile拷贝进/test
cd /test               # 进入dockerfile所在目录
docker build -t golang:v1.0 .    # 构建镜像
docker images          #查看镜像

GOROOT和GOPATH

GOROOT和GOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,参见下表。

平台 GOPATH默认值 举例
Unix $HOME/go /home/用户名/go
windows %USERPROFILE%/go C:\Users\用户名\go

我们只需要记住默认的GOPATH路径在哪里就可以了。

我们需要将 GOROOT下的bin目录及GOPATH下的bin目录都添加到环境变量中!才可以全局执行命令
注:配置环境变量之后需要重启你电脑上已经打开的终端。

开启go module

Go 1.13 后已经默认开启 go mod 了!

unix:

export GO111MODULE=on 

windows:

set GO111MODULE=on

go mod命令

 // 下载依赖到本地缓存,查看GOCACHE缓存地址
go mod download   
// 把模块之间的依赖图显示出来             
go mod graph       
// 当前目录初始化和创建`go.mod`文件,最好是项目名             
go mod init [模块名]    
// 添加确实模块和移除不必要的模块       
go mod tidy -v    
// 当前目录下生产vendor目录,包含所有依赖包            
go mod vendor -v        
// 检查当前模块的依赖是否已经存储在本地下载的源代码缓存中      
go mod verify     
// 依赖module下的vendor生成可执行文件               
go build -mod=vendor      
// 更新稳定版依赖
go get rsc.io/sampler       

GOPROXY

默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以需要换一个PROXY,这里推荐使用https://goproxy.io或https://goproxy.cn。也可以去阿里云Go Module代理仓库服务查看https://mirrors.aliyun.com/goproxy/

可以执行下面的命令修改GOPROXY:

go env -w GOPROXY=https://goproxy.cn,direct

配置Goland

  1. File -> Settings -> Go -> GOPATH:
    配置路径
  2. File -> Settings -> Go -> GOROOT:
    配置路径
  3. File -> Settings -> Go -> Go Modules(vgo):
    (1) 勾选enable go modules(vgo) integration
    (2) 设置Proxy为 https://goproxy.cn

使用go mod 管理项目

使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,可以在磁盘的任何位置新建一个项目

  1. 新建一个名为 test 的项目,项目路径 D:\test (注意,该路径并不在GOPATH里)。
  2. 进入项目目录 D:\test 里,新建一个 go源码文件:main.go。
  3. 然后在 D:\test 里打开终端执行命令:go mod init test (go mod init [模块名,最好是项目名],我这里叫test)看到提示 “go: creating new go.mod: module wserver” 说明 go mod 初始化成功了,会在当前目录下生成一个 go.mod 文件,包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块。
  4. 执行上述命令之后,其实已经可以开发编译运行此项目了,比如随便使用github上的一个包,在终端打印一下
package main

import (
    "fmt"
    "github.com/jinzhu/configor"
)

func main()  {
    fmt.Println("使用外部包测试:", configor.config{})
}

运行一下,会看到输出结果: { false false false} ,同时项目目录下多出了一个文件 go.sum 。go.sum 是记录所依赖的项目的版本的锁定。

  1. 现在再建一个项目内的包 route (和main.go同级),在 main.go 里如果需要使用这个包,需要使用这个包的 模块内的绝对路径来导入,比如:
package main

import (
    "fmt"
    "test/route"
    "github.com/jinzhu/configor"
)

func main()  {
    fmt.Println("使用项目内包测试:", route.Name{})
    fmt.Println("使用外部包测试:", configor.config{})
}

"test/route" 导入这个包的地方是 模块内的绝对路径,就是要从go.mod所在的目录开始。

另外,如果我们想把这个项目放到GOPATH下面,不使用go mod模式,而是想使用GOPATH模式的话,,只需要把这个项目移到GOPATH环境变量包含的任意一个目录下面的src目录里,就可以启用GOPATH模式了(前提是 GO111MODULE 这个环境变量的值必须是auto 或 off)。

参考:
https://www.jianshu.com/p/bbed916d16ea
https://www.liwenzhou.com/posts/Go/install_go_dev/

你可能感兴趣的:(搭建Go语言开发环境)