Go语言包管理

Go语言包管理

一、包

定义:就是对代码文件进行组织,放在不同的文件夹下,相同的文件夹下的文件可以定义为一个包,同一个包的文件包名相同

易错:导入包不能成环

二、GoPath方式

1、bin

存放可执行文件,go build之后创建exe文件

2、pkg

pkg存放编译后的库文件

3、src

src存放项目项目源码的目录
Go语言包管理_第1张图片
如果再次编译中,已经存在了相关库文件,直接引用,所以编译速度较快。

导入形式:直接从绝对路径导入(从src开始引入)

三、Go mod方式

1、优势

(1)不用设置gopath,代码任意防止;

(2)自动下载依赖管理;

(3)版本控制

2、相关go命令

bug         启动bug报告 
build       构建编译软件包和依赖关系
clean       删除对象文件和缓存文件
doc         显示软件包或符号的文档
env         打印Go环境信息
fix         更新软件包以使用新API 
fmt         gofmt(重新格式化)软件包源
generate    处理源生成生成Go文件
get         向当前模块添加依赖项并进行安装
install     编译并安装软件包以及依赖项
list        软件包或模块列表
mod         模块维护
run         编译并运行Go程序
test        测试包
tool        运行指定的go工具
version     打印Go版本
vet         报告软件包中可能存在的错误

3、配置go mod环境变量

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

4、引用本地包

(1)go mod文件

module PackManage

go 1.15

(2)引用

package main

import (
	"PackManage/util"
	"fmt"
)

func main(){
     
	fmt.Println("hello go mod")
	fmt.Printf("%d",util.Num)
}

使用go mod就可以不用从go path的src路径下导入了,直接从mod文件那儿导入

5、使用别人的第三方包

举例:引入beego

package main
import "github.com/astaxie/beego"

func main() {
     
	beego.Run()
}

运行之后发现go mod中多了

module PackManage

go 1.15

require github.com/astaxie/beego v1.12.3 // indirect

下次再次调用beego包的时候就直接调用本地包

同理,你也可拉取自己仓库的相关依赖

6、更新依赖包

(1)手动修改go mod包,然后重新go build

(2)通过go get方法更新依赖(github/用户名/仓库名)
在这里插入图片描述
7、其他

所有依赖还是储存在环境变量的gopath当中

三、Go Mod的工具

1、go mod tidy

去除多余的库

2、go list

获取模块列表(加上- m all 列出所有的包)

3、go get

更新依赖,下载依赖

推荐文章:http://www.zyiz.net/tech/detail-129980.html

看完如果对自己有所帮助,请点赞支持

你可能感兴趣的:(Go语言基础知识)