详解go mod 使用方法

目录
  • 1、进入grammar文件夹
  • 2、初始化目录
  • 3、导入自定义的模块
  • 4、导入本地没有的模块
  • 常用命令
    • 1、初始化模块
    • 2 、获取远程的模块
    • 3、 查看当前依赖模块
    • 4、清除未使用到的依赖

go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:

模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

如何使用 Modules ?

  • 把 golang 升级到 1.11(现在1.12 已经发布了,建议使用1.12)
  • 设置 GO111MODULE

go mod是go的一个模块管理工具,用来代替传统的GOPATH方案。下面是基本的使用方法:

假设我现在想要创建一个项目来学习go的语法,项目名为grammar,路径为 E:/go/grammar。

1、进入grammar文件夹

2、初始化目录

go mod init dayrain.cn/grammar

dayrain.cn/grammar是一个标识,一般是 主机名+模块名

初始化后,会自动创建一个go.mod文件,有go的版本号,以及所依赖的模块信息。

3、导入自定义的模块

新建一个lib1包,写一个简单的加法函数

add.go

package lib1
func Add(a int, b int) int {
	return a + b
}

在start.go中调用此方法

package main
import (
	"dayrain.cn/grammar/lib1"
)
func main() {
	res := lib1.Add(1, 1)
	print(res)
}

运行结果(go run start.go):

4、导入本地没有的模块

比如我想用日志打印刚才的res,可以修改start.go文件

package main
import (
	"dayrain.cn/grammar/lib1"
	"github.com/golang/glog"
)
func main() {
	res := lib1.Add(1, 1)
	glog.Info(res)
}

这个时候vscode给出错误提示

运行 go build命令

提醒我们要先go get github.com/golang/glog 获取模块

获取成功后,go.mod多了一行require。

常用命令

1、初始化模块

go  mod  init   模块名 

2 、获取远程的模块

go get  模块名         

3、 查看当前依赖模块

go list -m all           

4、清除未使用到的依赖

go mod tidy  

到此这篇关于gomod使用方法的文章就介绍到这了,更多相关gomod使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • go mod 使用旧版本 版本号指定方式

    在使用go mod的过程中,发现不容易指定版本号 尤其是没有打tag的,不知道怎么指定版本号, 不知道有哪版本号 正常使用都没有问题,但是当引用的项目用了旧的代码, 这时候必须使用旧的版本,无法指定版本,不知道如何入手 尤其是k8s.io不知道是什么鬼, 从哪里看它的代码,只知道github.com 这个时候在 go.mod文件中 require 里面加上 github.com/kubernetes/cloud-provider 2bf8e45 此时会自动生成版本号, 其中 2bf8e45 这个

  • 详解Go module的介绍及使用

    Go1.1.1版本发布(2018-08-24发布)已经过去几天,从官方的博客中看到,有两个比较突出的特色,一个就是今天讲的module,模块概念.目前该功能还在试验阶段,有些地方还需要不断的进行完善.在官方正式宣布之前,打算不断修正这种支持.到时候就可以移除对GOPATH和go get命令的支持. 如果你想现在想就试试这个新功能module,需要你将你的代码仓库放到GOPATH/src目录之外.然后在那个目录下创建一个go.mod文件,从文件树中运行go命令. 主要概念介绍 module是一个相

  • goland使用go mod模式的步骤详解

    使用go mod之后,想要在goland中有代码提示,有两种方式,一种是使用gopath下的goimport工具,另一种是使用gomod自身的管理工具 我是用的是非gopath的方式,每次新建项目后总是报错 go list -m: can't compute 'all' using the vendor directory (Use -mod=mod or -mod=readonly to bypass.), 得不到想要的效果,最后终于发现是步骤不对 第一步:创建空文件夹 第二步:goland以

  • go mod 使用私有gitlab群组的解决方案

    由于go对私有gitlab的仓库支持不好,得使用下面这些步骤 设置git使用 ssh协议 git config --global url."git@gitlab.com:".insteadOf https://gitlab.com/ 添加ssh key 到gitlab ssh-keygen 会生成 id_rsa.pub cat ~/.ssh/id_rsa.pub 粘贴到gitlab 右上角头像 Setting -> SSH keys,或者打开链接https://gitlab.co

  • Django框架models使用group by详解

    Django框架models使用group by详解: 首先,看下列代码: UserData.objects.filter(hubid=sensorid,time__range=(time2,time1)).values('hour').annotate(sum_out=Sum('outdoor'), sum_in=Sum('indoor'), sum_eat=Sum('kitchen'), sum_wash=Sum('toilet')).order_by('hour') 上述代码相当于sql语

  • go mod的使用方法小结

    目录 前言 1.go modules的基本介绍 1.1 提供的命令 1.2 提供的环境变量 1.2.1 说明 2.go modules的基本使用 2.1 初始化项目 3.使用go mod发布自己的包 3.1 发布公开的包 3.2 发布私有包 前言 对于多个项目来说,把所有的源码都放在GOPATH下的src目录下非常的不方便.golang给我们提供了一个叫go mod的命令来脱离src目录,方便我们管理go项目.go mod 是go官方提供的go版本管理的一个方案,目前1.15已经可用于生产环境.

  • 如何使用Goland IDE go mod 方式构建项目

    不管学习什么编程语言一开始都会经历的四步 开发工具安装 IDE安装 设置 依赖/包 国内镜像 项目构建工具,管理依赖/包 一.Golang 开发工具安装 https://golang.org/ 官网(需要各自手段) https://github.com/golang/go github地址 http://docscn.studygolang.com/ golang中文网 二.Goland IDE安装 https://www.jetbrains.com/zh-cn/go/ 三.设置 依赖/包 国内

  • 使用go module导入本地包的方法教程详解

    go module 是Go1.11版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始, go module 将是Go语言默认的依赖管理工具.到今天 Go1.14 版本推出之后 Go modules 功能已经被正式推荐在生产环境下使用了. 这几天已经有很多教程讲解如何使用 go module ,以及如何使用 go module 导入gitlab私有仓库,我这里就不再啰嗦了.但是最近我发现很多小伙伴在群里问如何使用 go module 导入本地包,作为初学者大家刚开始接触package的

  • 详解go mod 使用方法

    目录 1.进入grammar文件夹 2.初始化目录 3.导入自定义的模块 4.导入本地没有的模块 常用命令 1.初始化模块 2 .获取远程的模块 3. 查看当前依赖模块 4.清除未使用到的依赖 go modules 是 golang 1.11 新加的特性.现在1.12 已经发布了,是时候用起来了.Modules官方定义为: 模块是相关Go包的集合.modules是源代码交换和版本控制的单元. go命令直接支持使用modules,包括记录和解析对其他模块的依赖性.modules替换旧的基于GOPA

  • 详解JS数组Reduce()方法详解及高级技巧

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组. 语法: arr.reduce(callback,[initialValue]) callback (执行数组中每个值的函数,包含四个参数) previousValue (上

  • 详解Java中native方法的使用

    今天在网上学习时碰到有关于 native修饰符所修饰的方法,上网查了查,觉得很有意思记录一下 1.native简介 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C.这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数. native是与C++联合开发的时候用的!使用nat

  • 详解phpstorm2020最新破解方法

    推荐阅读: PHPStorm2020.1永久激活及下载更新至2020(推荐) https://www.jb51.net/article/195806.htm Jetbrains PhpStorm 2020.1 完美版(附安装教程) https://www.jb51.net/softs/720592.html PHPStorm 是 JetBrains 公司开发的一个轻量级且便捷的 PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查. 没有phpst

  • 详解Navicat简单使用方法

    首先连接上MYSQL数据库. 1.创建数据库:选中连接名,右键,点击新建数据库. 2.删除数据库:选中要删除的数据库,右键,点击删除数据库 3.创建数据表:双击test01,选中表,右键,新建表 4.修改数据表:选中数据表,右键,设计表,然后跟创建表里的操作一样去编辑字段,数据类型,完整性约束等. 5:.删除数据表:选中要删除的数据表,右键,选择删除表. 6.数据的增加.删除和修改: 7.查询数据:双击某个数据库,然后选择查询,右键,新建一个查询,然后就可以在里面编辑查询语句了,保存好这个查询,

  • 详解Java的桥接方法

    什么是桥接方法? Java中的桥接方法(Bridge Method)是一种为了实现某些Java语言特性而由编译器自动生成的方法. 我们可以通过Method类的isBridge方法来判断一个方法是否是桥接方法. 在字节码文件中,桥接方法会被标记为ACC_BRIDGE和ACC_SYNTHETIC,其中ACC_BRIDGE用于表示该方法是由编译器产生的桥接方法,ACC_SYNTHETIC用于表示该方法是由编译器自动生成. 什么时候生成桥接方法? 为了实现哪些Java语言特性会生成桥接方法?最常见的两种

  • 详解Pymongo常用查询方法总结

    Python 直接连接mongodb数据库进行查询操作 1.安装所需模块 使用到的是pymongo模块,安装方法:pip install pymongo 2.环境验证 3.连接数据库 import pymongo def operating_mongodb(): client = pymongo.MongoClient('ip_address', port) db_auth = client.database db_auth.authenticate("username", "

  • 详解Java从工厂方法模式到 IOC/DI思想

    前言 简单工厂的本质是选择实现,说白了是由一个专门的类去负责生产我们所需要的对象,从而将对象的创建从代码中剥离出来,实现松耦合.我们来看一个例子: 我们要创建一个文件导出工具 public interface FileOper{ public Boolean exceptFile(String data); } public class XMLFileOp implment FileOper{ public Boolean exceptFile(String data){ System.out.

  • 详解python os.walk()方法的使用

    python os.walk()方法 os.walk方法是python中帮助我们高效管理文件.目录的工具,在深度学习中数据整理应用的很频繁,如数据集的名称格式化.将数据集的按一定比例划分训练集train_set.测试集test_set. 1.导入文件(使用os.walk方法前需要导入以下包) import os import random # 后续用来将数据随机打乱和生成确定随机种子,保证每次生成的随机数据一样便于测试模型精准度 2.os.walk()参数解释 os.walk(top, topd

  • Java基础之详解HashSet的使用方法

    Java HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合. HashSet 允许有 null 值. HashSet 是无序的,即不会记录插入的顺序. HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的. 您必须在多线程访问时显式同步对 HashSet 的并发访问. HashSet 实现了 Set 接口. HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类. 添加元素 HashSet

随机推荐