南瓜慢说官方网站

  • 首页
  • 所有文章
  • 容器技术
  • SpringBoot-Cloud
  • 程序人生
  • 其它
  • 整理
  • 关于

  • 搜索
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
技术之前,先读诗书:

使用Go module和GoLand初始化一个Go项目

发表于 2020-12-13 | 分类于 其它 | 0 | 阅读次数 117

1 简介

Golang是一门优秀的语言,特别是在并发编程上,得益于它的协程和channel等,非常方便易用。它通过go module来管理包和依赖,本文介绍如何利用它创建一个项目。

2 重要的环境变量

Go通过环境变量来做项目上的管理和控制,通过命令go env可以查看相关变量:

$ go env
GO111MODULE="on"
GOARCH="amd64"
GOHOSTOS="darwin"
GOMODCACHE="/Users/larry/go/pkg/mod"
GOPATH="/Users/larry/go"
GOPROXY="https://mirrors.aliyun.com/goproxy/"
GOROOT="/Users/larry/Software/go"
GOTOOLDIR="/Users/larry/Software/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"

关键环境变量:

GOROOT:Go的安装目录,即可执行文件所在的目录;

GOPATH:工作目录并不是项目所有目录,编译后的二进制文件存放地,import包的搜索路径,主要包含bin、pkg、src;

GO111MODULE:启用go module管理项目,需要有go.mod和go.sum文件;

GOPROXY:下载依赖时的代理,必须配置,不然无法成功下载;

常用的代理有:

# 1. 七牛 CDN
export GOPROXY=https://goproxy.cn,direct

# 2. 阿里云
export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

# 3. 官方
export GOPROXY=https://goproxy.io,direct

个人用阿里云比较多。

3 初始化项目

用命令执行如下:

# 创建project的目录
$ mkdir pkslow_test
# 进入目录
$ cd pkslow_test/
# 初始化
$ go mod init pkslow.com/pkslow_test
go: creating new go.mod: module pkslow.com/pkslow_test

$ l
-rw-r--r--   1 larry  staff   39 Dec 13 21:07 go.mod
#查看文件内容
$ cat go.mod 
module pkslow.com/pkslow_test

go 1.15

新建文件main.go,开始写代码:

package main
import "fmt"
func main() {
    fmt.Println("hello pkslow")
}

执行或编译后执行:

# 直接run
$ go run main.go 
hello pkslow

# 编译成二进制文件
$ go build
t$ l
-rw-r--r--   1 larry  staff       39 Dec 13 21:07 go.mod
-rw-r--r--   1 larry  staff       74 Dec 13 21:12 main.go
-rwxr-xr-x   1 larry  staff  2146904 Dec 13 21:12 pkslow_test
# 执行二进制文件
$ ./pkslow_test 
hello pkslow

4 引入本地包

创建目录与文件结构如下:

$ tree
├── go.mod
├── main.go
└── mylog
    └── pkslow_log.go

新建pkslow_log.go的内容如下:

package mylog
import "fmt"

func PkslowLog(str string) {
    fmt.Println(str)
}

修改后的main.go的内容如下:

package main
import (
	"fmt"
	"pkslow.com/pkslow_test/mylog"
)

func main() {
    fmt.Println("hello pkslow")
    mylog.PkslowLog("www.pkslow.com")
}

执行如下:

$ go run main.go 
hello pkslow
www.pkslow.com

5 GoLand打开项目

以上已经基本完成了项目的创建,但使用IDE写代码会更高效率,直接使用GoLand打开项目即可。一些关键配置如下:

GOROOT:

GOPATH:

Go Module:

最终项目整体结构如下:

6 总结

Go语言还是挺有意思的,值得一试。


欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

file

推荐阅读:
如何制定切实可行的计划并好好执行
容器技术(Docker-Kubernetes)
SpringBoot-Cloud相关
Https专题

  • 本文作者: 南瓜慢说
  • 本文链接: https://www.pkslow.com/archives/go-create-project
  • 版权声明: 本博客所有文章除特别声明外,不可转载!
# 中间件 # config # Go # Private # Kubernetes # pkslow # Test # HTTPS # Redis # Docker # Mac # 计划 # Stream # MongoDB # Spring # DevOps # JVM # String # Map # Set # List # 性能 # Email # Springboot # 集合类 # ArrayList # Java
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
Spring Cloud Gateway简单入门,强大的微服务网关
2020年11月CKA新题考试心得体会
  • 文章目录
  • 站点概览
南瓜慢说

南瓜慢说

多年Java开发,主要专注后端技术:Java/Spring/Springboot/微服务/大数据等。

多读书,多分享;多写作,多整理。

153 日志
7 分类
27 标签
RSS
0%
© 2020 — 2021 南瓜慢说 本站已挣扎运行:   粤ICP备20036375号