Skip to content

创建项目 原创

说明

这节课我们来创建项目,目标如下:

  1. 写一个简单的 Hello World 测试代码
  2. 初始化 Go Module 项目
  3. 初始化 Git 版本控制

1、创建项目目录

在开发 Go 项目的时候,推荐把项目放岛 $GOPATH/src 目录下,命名规则一般为:

powershell
$GOPATH/src/github.com/GITHUB_NAME/PROJECT_NAME

这样做除了将项目推送到 GitHub 时项目地址保持一致外,另一个好处是未来随着 Go 项目增多,src 目录仍可保持有序。

当然,也可以直接放到 $GOPATH/src 的根目录,如下:

powershell
$GOPATH/src/PROJECT_NAME

这里,我采用第一种项目管理方式:

powershell
$ cd $GOPATH/src
$ mkdir -p github.com/joker-bai/hawkeye
$ cd github.com/joker-bai/hawkeye

2、初始化 Go Module

进入工程目录,执行以下命令:

powershell
$ go mod init

然后会生成 go.mod 文件,里面的内容如下:

powershell
$ cat .\go.mod
module github.com/joker-bai/hawkeye

go 1.19

3、创建 main.go 文件

使用VSCode打开项目,可以使用以下命令打开:

powershell
$ cd github.com/joker-bai/hawkeye
$ code .

然后新建 main.go 文件,输入以下内容:

go
package main

import (
	"fmt"
)

func main() {
	fmt.Println("Hello World!")
}

保存后,使用 ctrl + 打开VSCode`终端。

af44cc2614669bdf517ec2eb615b7891 MD5

在终端里输入 go run main.go 即可运行程序,如下:

871ea34159ca6824ac67f8e4dbeb4af8 MD5

4、添加.gitignore 文件

在实际开发中,代码目录中会生成一些我们不希望提交到代码仓库的文件。这时候就需要我们在项目里创建 .gitignore文件,输入以下内容:

go
tmp
.env
gohub
.DS_Store
.history

# Golang #
######################
# `go test -c` 生成的二进制文件
*.test
# go coverage 工具
*.out
*.prof
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*

# 编译文件 #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# 压缩包 #
############
# Git 自带压缩,如果这些压缩包里有代码,建议解压后 commit
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# 日志文件和数据库 #
######################
*.log
*.sqlite
*.db

# 临时文件 #
######################
tmp/
.tmp/

# 系统生成文件 #
######################
.DS_Store
.DS_Store?
.AppleDouble
.LSOverride
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.TemporaryItems
.fseventsd
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# IDE 和编辑器 #
######################
.idea/
/go_build_*
out/
.vscode/
.vscode/settings.json
*.sublime*
__debug_bin
.project

# 前端工具链 #
######################
.sass-cache/*
node_modules/

5、代码版本

日常开发中,所有代码都应该使用Git版本控制器来管理,我们这个项目也会如此:

go
$ git init
$ git add .
$ git commit -m "init project"
最近更新