Go mod包管理

介绍

Go1.11版本(已上版本)支持module功能,用于源代码更替和版本控制。可替代对GOPATH的依赖,不必在$GOPATH/src下新建项目,而是任意包含go.mod的目录都可以是工程目录。注意:$GOPATH目录还有要配置的。

使用

1.现在在vagrant/www/go/下面创建test项目目录(ps:GOPATH="/vagrant/go",可以用go env查看)

mkdir test

2.进入test执行,go mod init [模块名](ps:[模块名]必须跟项目同名)

go mod init test

看到提示 “go: creating new go.mod: module test”  说明 go mod 初始化成功了,会在当前目录下生成一个 go.mod 文件

包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块

3.引入项目或者创建main.go

这里我引入的是一个项目,注意的main.go文件,其他的不要

4.go mod tidy -v // 添加确实模块

添加完成可以去GOPATH/pkg看到有一个mod文件夹,里面就是刚刚下载的模块

5.go mod vendor -v // 当前目录下生产vendor目录,包含所有依赖包

ll可以看到test项目项目多了一个vendor文件夹

同时go.mod和go.sum多了一下

6.运行项目

go  run main.co

go mod命令

go mod download              // 下载依赖到本地缓存,查看GOCACHE缓存地址
go mod graph                    //把模块之间的依赖图显示出来
go mod init [模块名]           // 当前目录初始化和创建`go.mod`文件,最好是项目名
go mod tidy -v                    // 添加确实模块和移除不必要的模块
go mod vendor -v              // 当前目录下生产vendor目录,包含所有依赖包
go mod verify                    // 检查当前模块的依赖是否已经存储在本地下载的源代码缓存中
go build -mod=vendor      // 依赖module下的vendor生成可执行文件

go get rsc.io/sampler       //更新稳定版依赖

GO111MODULE环境变量

GO111MODULE=off      // 不用module功能,GOPATH模式寻找依赖包
GO111MODULE=on      // module模式,build时找module下的vendor,GOPATH承担下载依赖包到GOPATH/pkg/mod
GO111MODULE=auto   // 根据当前目录是否包含go.mod来判断

原文地址:https://www.cnblogs.com/jxxiaocao/p/12179329.html

时间: 2024-10-22 21:14:17

Go mod包管理的相关文章

Golang高阶:Golang1.5到Golang1.12包管理

Golang1.5到Golang1.12包管理 1. 前言 Golang 是一门到如今有十年的静态高级语言了,2009年的时候算是正式推出了,然后到最近的一两年,2017-2018年的时候,突然直线上升,爆火了,得益于容器化运维/直播/短视频/区块链... Golang 语法简单,简单即是复杂,软件构建的核心在于将复杂的东西简单化,处理好复杂度. 作为一个 gopher,我们要知道他的包管理,这样才能合理化代码结构,做好工程管理.(gopher:地鼠) 2. GOPATH/ Golang 1.5

golang包管理的古往今来

https://golang.org/ before GO1.5-GOPATH 在GO1.5之前用GOPATH以及GOROOT这两个环境变量来决定包的位置. GOROOT就是告知当前go的安装位置,编译的时候从GOROOT去找sdk的system library. GOPATH的目的是为了告知go,需要代码的时候,去哪里查找.注意这里的代码,包括本项目和引用外部项目的代码.GOPATH可以随着项目的不同而重新设置. 从go 1.8开始,如果GOPATH没有被设置,会有一个默认值,在Unix上为$

包管理工具rpm和yum的用法

包管理工具rpm和yum的用法 一.rpm的用法 rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐收到其他发行版的采用,RPM套件管理方式的出现,让Linux易于安装.升级,间接提升了Linux的适用性. rpm用法:rpm [OPTION...] 1.rpm安装软件包,后面需要跟上程序包文件的绝对路径或相对路径 常用选项: -v:显示指令的执行过程 -vv:详细显示指令执行过程,便于排错 -h:以#号显示程

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

Linux之Redhat系列程序包管理

安装.升级和卸载应用软件是每个系统不可或缺的一部分:对于在企业使用越来越广泛的Linux操作系统而言,强大而简洁的程序包管理机制为工程师们带来了很大的便利:下文主要介绍在RedHat系列的系统上如何使用RPM/YUM/编译三种方式去管理程序包. 一.RPM程序包管理 PRM全称是Red Hat Package Manager(RedHat 包管理器).Linux RPM软件包的命名有一定的规律:名称-版本-修正版-类型.rpm 例如: RPM命令详解: 功能: 安装.卸载.升级.查询和数据库维护

windows安装python包管理工具pip

windows安装python包管理工具pip     pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具. 一.前期准备 首先确认windows机器上面是否已经安装好了python.在cmd中输入python --version和python看看是否有反应 如上面所示,表示已经在windows平台上面搭建好了python环境. 二.下载安装 1.到官网去https://pypi.python.org/pypi/pip#downl

Yocto tips (15): Yocto中的包管理器

使用包管理器 在local.conf中使能就可以: 然后编译后就会有rpm包了: 配置文件server 能够使用ngix和apache.可是我们也能够仅仅用使用python: python -m SimpleHTTPServer 打开浏览器能够看到: 在机器上面查看包的status smart status 在机器上面配置channel 对于rpm使用的smart工具,加入channel: smart channel --add all type=rpm-md baseurl=http://19

CentOS程序包管理器之rpm前端管理器

CentOS的程序包管理器: 首先,我们要来了解一下程序包(源代码包)的命名规则: software_name-VERSION.tar.gz VERSION:major.minor.release major:主版本号,通常代表重大功能改进的版本分支: minor:次版本号,通常代表在某个版本的分支中的某个功能发生变化: release:发行版本号,修复了某些bug或者对某段代码进行了优化: 例如:apache-tomcat-7.0.63.tar.gz 而rpm程序包命名规则为: 源码包:sou

rpm程序包管理器详解

1. 程序包管理器的功能 我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用,对于普通用户来说有一定难度.因此为了降低普通用户对应用程序的使用难度,程序员可在提供源代码的同时提供已在特定环境下编译好的程序文件,只要用户的平台环境和程序员的平台环境相同,就可以通过解压程序员提供的二进制格式文件即可使用,而无需自己手动编译安装. 一个已编译好的程序由二进制程序.库文件.配置文件和帮助手册等组成,而程序包管理器的功能就