go mod文件内容版本号简单用法详解

go版本

本文go版本是1.14,开启 GO111MODULE="on"

经常在go.mod里面看到引入第三方库的版本号:

module test
go 1.14
require github.com/jinzhu/copier v0.3.5 // indirect

可以看到copier版本使用的是v0.3.5的版本。

现在做个实验,在go.mod里面写上上面的代码【是手动写入,没有下载】

我们假定main.go内容如下:

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

里面没有使用到copier的库,我们先run一下

可以看到代码正常运行,但是它并没有下载这个依赖包。

现在改一下main.go的代码,如下:

package main
import (
	"fmt"
	"github.com/jinzhu/copier"
)
type User struct {
	Name string
	Age  int
	QQ   string
}
type Employee struct {
	Name string
	Age  int
	Role string
}
func main() {
	user := User{Name: "dj999", Age: 18, QQ: "8888"}
	employee := Employee{Role: "xxx"}
	copier.Copy(&employee, &user)
	fmt.Printf("%#v\n", employee)
}

直接运行go run main.go

可以看到它自动下载这个库的指定版本了(go: downloading github.com/jinzhu/copier v0.3.5),并且代码运行成功。

这个时候在pkg\mod\github.com\jinzhu下也有这个扩展库的文件夹了

我们换一个场景:把go.mod内容改一下:

module yif
go 1.14
require github.com/jinzhu/copier v0.3.4 // indirect

就是把版本号改为v0.3.4,其他不变,run一下

发现它下载了v0.3.4的版本了,再来看看pkg\mod\github.com\jinzhu目录:

发现两个都存在了。

所以go.mod的一个功能就是指定特定版本,让项目组每个开发者使用同一个版本号进行开发

以上就是go mod文件内容版本号简单用法详解的详细内容,更多关于go mod文件内容版本号用法的资料请关注我们其它相关文章!

(0)

相关推荐

  • GO语言包管理工具go mod以及包详解

    目录 1.GO中包的定义与介绍 2. 包管理工具 go mod 2.1 自定义包 (可以包含多个go文件) 2.1.1 建立项目并go mod init初始化 2.1.2 自定义一个包(文件夹)并书写方法 2.1.3 引入自定义包,并使用 2.1.4 函数init执行顺序 init函数会自动执行 3. golang中使用第三方包 3.1 查找第三方包 3.2 安装包 3.2.1 go get (全局) 3.2.2 go download (全局) 补充:常用命令 总结 1.GO中包的定义与介绍

  • Golang中的包及包管理工具go mod详解

    目录 一.包 二.包管理工具go mod 三.init函数 四.使用第三方包 一.包 1.包的种类:系统内置包.自定义包.第三方包. (1)系统内置包:go语言自带包,如str.conv.fmt等 (2)自定义包:开发者自己写的包 (3)第三方包:属于自定义包的一种,需下载到本地才能使用, 如可以从GitHub上下载的第三方包. 2.包是多个go源文件的集合,一个package下可以有多个go文件,归属于同一package 二.包管理工具go mod 1.在go的1.11版本之前如果想自定义包需

  • Golang必知必会之Go Mod命令详解

    目录 一.go mod 是什么? 二.详细命令 1. init 2.download 3.tidy 4.graph 5.edit 5.vendor 5.verify 5.why 补充:golang开启mod后import报红解决 总结 一.go mod 是什么? go modules 官方定义为: 模块是相关Go包的集合.modules是源代码交换和版本控制的单元.go命令直接支持使用modules,包括记录和解析对其他模块的依赖性.modules替换旧的基于GOPATH的方法来指定在给定构建中

  • Go modules replace解决Go依赖引用问题

    为什么会用到 replace 取名是一个很有讲究的事情,但每个人都不一样. 一开始,我写了一个 A 项目,代码仓名称为 project-alpha 但 go.mod 里的 package 设置的是 github.com/k8scat/alpha, 当在另一项目 B 中想要引用 A 项目的代码时,一般来说,用的是 github.com/k8scat/project-alpha 因为 go get 会使用 git 去,但由于 package 和代码仓的名称不一样 需要使用 replace 进行转换一

  • 一文详解go mod依赖管理详情

    目录 1. go的依赖管理发展 2. go.mod 文件分析 3. go mod依赖下载工具 4. 可能出现的问题汇总 1. go的依赖管理发展 GOPATH 所有的依赖都放置在同一路径下,可以复用下载的依赖,但是当不同项目需要依赖不同版本的依赖时,就很容易出现冲突问题. govendor 解决了依赖库版本不一致的问题,但是不好控制(了解即可) go mod 使用go.mod文件管理以来的版本,通过go get下载依赖 2. go.mod 文件分析 module xx/xx/xx/v2 go 1

  • go mod详细使用教程

    目录 前言 使用go path问题 govendor go mod介绍 如何使用go mod GO111MODULE go mod命令 使用go mod管理一个新项目 1. 初始化项目 2. 添加依赖 go get升级 使用replace替换无法直接获取的package go mod发布和使用 Creating a Module module versioning making a release use our module Making a bugfix release Updating m

  • go modules中replace使用方法

    目录 使用replace替换package 示例 使用replace替换package 因为某些未知原因,并不是所有的包都能直接用go get获取到,这时我们就需要使用go modules的replace功能了. replace顾名思义,就是用新的package去替换另一个package,他们可以是不同的package,也可以是同一个package的不同版本.看一下基本的语法: go mod edit -replace=old[@v]=new[@v] old是要被替换的package,new就是

  • go mod文件内容版本号简单用法详解

    go版本 本文go版本是1.14,开启 GO111MODULE="on" 经常在go.mod里面看到引入第三方库的版本号: module test go 1.14 require github.com/jinzhu/copier v0.3.5 // indirect 可以看到copier版本使用的是v0.3.5的版本. 现在做个实验,在go.mod里面写上上面的代码[是手动写入,没有下载] 我们假定main.go内容如下: package main import "fmt&q

  • Python 中 Virtualenv 和 pip 的简单用法详解

    本文介绍了Python 中 Virtualenv 和 pip 的简单用法详解,分享给大家,具体如下: 0X00 安装环境 我们在 Python 开发和学习过程中需要用到各种库,然后在各个不同的项目和作品里可能用的版本还不一样,正因为有这种问题的存在才催生了virtualenv的诞生.virtualenv 可以在电脑上创建一个虚拟环境,可以针对每一个项目创建一个虚拟环境,这样就不用担心各个不同的项目用不同版本的库的时候出现的冲突了. 下面的内容只适用于 Linux/OSX,未经 Windows 环

  • python文件转为exe文件的方法及用法详解

    一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序.py2exe是发布在开源许可证下的. 二.安装py2exe 从 http://prdownloads.sourceforge.net/py2exe下载

  • Bootstrap Fileinput文件上传组件用法详解

    最近时间空余,总结了一些关于bootstrap fileinput组件的一些常见用法,特此分享到我们平台,供大家参考,同时也方便以后的查找.本文写的不好还请见谅. 一.效果展示 1.原始的input type='file',简直不忍直视. 2.不做任何装饰的bootstrap fileinput:(bootstrap fileinput初级进化) 3.bootstrap fileinput高级进化:中文化.可拖拽上传.文件扩展名校验(如果不是需要的文件,不让上传) 拖拽上传 上传中 4.boot

  • js中apply与call简单用法详解

    你可以直接看例子,也可以先读一下介绍: call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作. call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方

  • C# Winfom 中ListBox的简单用法详解

    1.如何添加listBox的值 this.listBox1.Items.Add("张晓东"); 2.如何判断listBox集合是否添加过 //检查添加值是否添加过 if(this.listBox1.items.Contains("张晓东")){ MessageBox.show("集合成员已添加过!"); } else{ //执行添加集合成员 } 3.如何获取listBox选中的值 //判断所有选中项集合大于0 if(this.listBox1.S

  • 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解

    Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadify 好看一些,功能也强大些,本文主要基于我自己的框架代码案例,介绍其中文件上传插件File Input的使用. 1.文件上传插件File Input介绍 这个插件主页地址是:http://plugins.krajee.com/file-input,可以从这里看到很多Demo的代码展示:http:/

  • C++中TinyXML读取xml文件用法详解

    目录 前言 XML文件理解 常用的XML类方法使用 总结 前言 TinyXML下载地址:https://sourceforge.net/projects/tinyxml/ 官方文档:TinyXML TinyXML是个解析库,它由两个头文件(.h文件)和四个CPP文件(.cpp文件)构成,用的时候,只要将(tinyxml.h.tinystr.h.tinystr.cpp.tinyxml.cpp.tinyxmlerror.cpp.tinyxmlparser.cpp)导入工程就可以用它的东西了.如果需要

  • Java Swing组件文件选择器JFileChooser简单用法示例

    本文实例讲述了Java Swing组件文件选择器JFileChooser简单用法.分享给大家供大家参考,具体如下: 先来看效果: 说明:选择文件或者文件夹.本例子就直接在控制台输出文件或者文件夹的路径.实际开发中,就可以将文件或文件夹的路径封装为File的实例来使用了. 具体代码如下: package awtDemo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.F

  • 对vue2.0中.vue文件页面跳转之.$router.push的用法详解

    vue2.0在使用的过程中, .vue文件之间的跳转,在template中的常见写法是: <router-link to="/miniCard/statement/horizon"> <button class="btn btn-default colorDe">继续</button> </router-link> 但是有时的需求是页面不直接跳转,有确认弹框或者其他事件,此时就需要在js中设置跳转,常用的一种方法是 .

随机推荐