go mod

摘要:
golang终于出官方版本管理机制,名为gomodules初体验使用前:#先升级golang到1.11版本,然后exportGO111MODULE=on在项目github.com/humboldt-xie/test-mod下,通过gomodinitgomodinit然后会在当前项目目录下出现go.mod文件,内容为:modulegithub.com/humboldt-xie/test-mod编辑代

golang 终于出官方版本管理机制,名为 go modules

初体验

使用前:

# 先升级 golang 到 1.11 版本,然后
export GO111MODULE=on

在项目github.com/humboldt-xie/test-mod下,通过go mod init

go mod init

然后会在当前项目目录下出现 go.mod 文件,内容为:

module github.com/humboldt-xie/test-mod

编辑代码 main.go

package main

import (
	"fmt"
	"github.com/humboldt-xie/hlib/vmap"
)

func main() {
	vmap := vmap.NewVMap()
	fmt.Println("vim-go", vmap)
}

引用一个包

然后,直接运行go build ./

➜  go build ./
go: finding github.com/humboldt-xie/hlib/vmap latest
go: finding github.com/humboldt-xie/hlib latest

这时,会自动加载依赖包,并编译通过

这时,多了一个文件go.sum,并且go.mod 也被修改了

go.mod 则是描述直接依赖包(相当于glide.yaml)

go.sum 则是描述依赖树锁定(相当于glide.lock)

查看go.mod 文件内容,这时变为了

module github.com/humboldt-xie/test-mod

require github.com/humboldt-xie/hlib v0.0.0-20180903073735-6738efa10c3a

go.sum 内容为

github.com/humboldt-xie/hlib v0.0.0-20180903073735-6738efa10c3a h1:GgiozN6lA73wd7mQbJUdiEzW9CoBJM1Ey8A3G8RbsCo=
github.com/humboldt-xie/hlib v0.0.0-20180903073735-6738efa10c3a/go.mod h1:Zdztzq6jaF9E1ZbVz6g5Kf/Thx4/guqFB3gxAkcNkGs=
github.com/timtadh/data-structures v0.5.2 h1:yGrL+5Tf5mwRDPGnKwLeLOvfmoDsuKiMRmpETgGq+4w=
github.com/timtadh/data-structures v0.5.2/go.mod h1:9R4XODhJ8JdWFEI8P/HJKqxuJctfBQw6fDibMQny2oU=

go mod 还支持的命令:

	download    download modules to local cache
	edit        edit go.mod from tools or scripts
	graph       print module requirement graph
	init        initialize new module in current directory
	tidy        add missing and remove unused modules
	vendor      make vendored copy of dependencies
	verify      verify dependencies have expected content
	why         explain why packages or modules are needed

存储

go mod 下载的库,都存储在

$GOPATH/pkg/mod/cache 下

总结

使用go mod 总共分为两步:

go mod init

go build ./

十分简单

来源:https://www.wafunny.com/blog/go/mod.html

免责声明:文章转载自《go mod》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos 下用shell删除多个目录下删除指定目录下创建日期大于30天的.log .txt文件360浏览器拦截弹窗,window.open方式打不开新页面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python的路径引用

1、以HOME目录为准,进行跳转 sys.path.append(os.path.dirname(__file__) + os.sep + '../') from config import swordfishconf from utils import log from utils.mysql_base import MySQLBase 将程序的HO...

java之jar命令详解

  1. JAR 文件包   JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFES...

JavaScript单元测试工具-Jest

标注: 首先这并不是一篇完整的关于Jest的教程,只是个人在接触jest学习的一点随手笔记,大部分内容都是对官方文档的一些翻译。 ------------------------------------------------------------------------------------------------------------------...

彻底搞懂golang的GOROOT和GOPATH

目录 1、GOPATH 和 GOROOT 2、修改 GOPATH 和 GOROOT 3、HelloWord——GOPATH版 4、一些踩坑经验 1、GOPATH 和 GOROOT不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,GOROOT 和 GOPATH Go开发相关的环境变量如下: GOROOT:GOROOT就是Go的安装目录,(...

Webpack的使用

webpack的使用 在项目中安装和配置webpack 1、运行npm install webpack webpack-cli -D命令 安装webpack相关的包 2、在项目的根目录中,创建webpack.config.js的webpack 配置文件 3、在webpack 的配置文件中初始化如下基本配置  module.exports={     mod...

多租户实现之基于Mybatis,Mycat的共享数据库,共享数据架构

前言 SaaS模式是什么? 传统的软件模式是在开发出软件产品后,需要去客户现场进行实施,通常部署在局域网,这样开发、部署及维护的成本都是比较高的。 现在随着云服务技术的蓬勃发展,就出现了SaaS模式。 所谓SaaS模式即是把产品部署在云服务器上,从前的客户变成了“租户”,我们按照功能和租用时间对租户进行收费。 这样的好处是,用户可以按自己的需求来购买功...