wiki
https://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release
参考
https://blog.csdn.net/benben_2015/article/details/82227338

go mod 之本地仓库搭建
----------------------------------------------------------------------------------------
将当前项目添加到$GOPATH中--这是使用的前提条件
11版本中的临时变量on/off,on表示使用go mod同时禁用$GOPATH
export GO111MODULE=on
export GO111MODULE=off

在各个包下面执行
go mod init

在main方法所在的包下执行
go mod init

修改main程序包下的go.mod,将需要的包添加进来
vim go.mod
module test

require mha v0.0.0
replace mha => ../mha

go 1.12

go.mod说明
--------------------------------------------------
module test中的test是指GOPATH src下的全路径,这里就是$GOPATH/src/test
require mha中的mha也是如此
如果在github上的话,这里的路径将是 github.com/项目名称/包名称
replace 则是使用本地仓库的包,替换指定的包
如果使用了go mod,那么包的引入规则只能全部以该方式进行,不能部分包使用go mod,部分包还使用$GOPATH
export GO111MODULE=off 禁用 go mod后,$GOPATH生效,不需要删除各包下的go.mod文件,原来的项目依然可以运行

再看一个更详细的例子

===========================================================================

GOPATH目录为空
root@black:~# echo $GOPATH
/opt/code/gopath
root@black:~# cd /opt/code/gopath/
root@black:/opt/code/gopath# ls
bin src
root@black:/opt/code/gopath# cd src
root@black:/opt/code/gopath/src# ls
root@black:/opt/code/gopath/src#

mkdir test
vim test/test.go
package main

import(
"fmt"
"time"
)

func test(){
c := make(chan struct{})

go func(){
fmt.Println("我要出去看看园子里的花还活着吗")
time.Sleep(7*time.Second)
c <- struct{}{}
}()

<- c
fmt.Println("这花被别人拿走了,再也看不到它了")
}

func main(){
test()
}

# go run test/test.go
我要出去看看园子里的花还活着吗
这花被别人拿走了,再也看不到它了

上面是GOPATH方式运行的程序,现在以go mod方式运行

打开MOD打开
export GO111MODULE=on

初始化
cd test
go mod init
go: cannot determine module path for source directory /opt/dev/test (outside GOPATH, no import comments)
这里说我们的项目根目录必须位于GOPATH中,那么,我们将项目根目录加入到GOPATH中

export GOPATH=/opt/code/gopath
export GOPATH=$GOPATH:/opt/dev/test
source /etc/profile
# echo $GOPATH
/opt/code/gopath:/opt/dev/test

cd /opt/dev/test
mkdir src
将之前的脚本目录移动过来

再次运行go mod init
root@black:/opt/dev/test/src/test# go mod init
go: creating new go.mod: module test
root@black:/opt/dev/test/src/test# cat go.mod
module test

go 1.12

root@black:/opt/dev/test/src/test# go run test.go
我要出去看看园子里的花还活着吗
这花被别人拿走了,再也看不到它了

转载于:https://www.cnblogs.com/perfei/p/11398090.html

2.9 go mod 之本地仓库搭建相关推荐

  1. go mod导入本地包

    利用go mod导入本地包 在实际项目开发过程中,为了完成一些功能,往往需要自己在本地新建一些包,然后在项目的其他go文件中调用该包.当使用go mod管理 包时,会出现一些错误,比如:如果我们本地的 ...

  2. Steam下载MOD至本地文件夹

    Steam下载MOD至本地文件夹 1 所需app和web 2 具体步骤 2.1 安装SteamCMD 2.2 登录SteamCMD 2.3 打开网页端的Steam并搜索你想要的MOD 2.4 点击你需 ...

  3. 3.0 go mod之远程仓库搭建-代码示例

    注意事项 所谓的远程仓库指的是github,个人首次使用go mod在其他云仓库上尝试,并未成功,这浪费了我近2小时的时间: 如果你是初次尝试,那么除了github的地址换一下之外,其他的都按照示例操 ...

  4. npm本地仓库搭建教程

    看完你将能收获:搭建自己本地的个人或者公司私有的npm仓库. ** 前言 ** npm是随同node.js一起绑定安装的包管理工具,其他比较知名的包管理工具有bower,yarn等. npm现在已经是 ...

  5. linux系统下git本地仓库搭建及使用 (麒麟系统)

    部分内容来自于:Git 服务器搭建 | 菜鸟教程 Git公钥id_rsa.pub的配置 clone代码失败 原因是ssh没有安装server 1. 安装 在终端执行命令sudo apt install ...

  6. go mod导入本地包的正确引入方法:require + replace

    GO111MODULE=auto时,如果是写在GOPATH/src目录下的包,可以直接引入,不含src

  7. 《饥荒》添加本地mod

    <饥荒>添加本地mod 最近在玩<饥荒>,这里给大家说明一下怎么添加本地mod 首先找到Steam中的游戏,然后点进去 然后找到"创意工坊" 注意 如果打不 ...

  8. 在linux(centos7)下本地仓库的搭建

    ----------------本地仓库搭建-------------------------------------------------- mount /dev/sr0 /mnt #挂载 mkd ...

  9. 最新jfrog artifactory搭建Android本地仓库教程

    提高gradle编译速度 jfrog artifactory本地仓库搭建 前言 什么是本地仓库 jfrog本地仓库搭建 更改项目仓库地址 解决Received status code 401 from ...

最新文章

  1. 动手实现一个 localcache - 设计篇
  2. 数据库为什么不适合搜索引擎的底层存储?
  3. 51单片机基本刷屏测试实验_51单片机实验
  4. 非阻塞式编程 php,简单介绍PHP非阻塞模式
  5. Redis的持久化策略
  6. SitePoint播客#160:坐在树上的Adobe和HTML
  7. android 8 ldac,小米Android 8.0机型支持LDAC功能
  8. 国货当自强!四款好用又免费的国产项目管理工具
  9. 【爱情】男女关系大实话 婚姻篇
  10. mac 破解安装 navicat
  11. 卖了个 Chrome 插件,赚了几千美金,但是很后悔!
  12. Linux 搭建 discuz 论坛
  13. python画菱形的代码_python画棱形
  14. Android中TextView文字设置不同的颜色
  15. 查看服务器内存型号及主频
  16. 2022PMP考试基本情况详情了解
  17. 前端开发规范,你真的了解吗?一起来学习一下前端开发规范,让你的代码高级起来!
  18. 玩转-------商业大亨
  19. 官宣!长城汽车正式收购戴姆勒巴西工厂;安进任命许蔼龄为安进中国总经理 | 美通社头条...
  20. uniCloud开发中,小程序微信登录 nui-id 模块的使用方法

热门文章

  1. mongo更新数组字段_更新mongodb中嵌套数组中的几个字段(使用pymongo)
  2. 【HDU - 5965】扫雷(dp)
  3. 【BZOJ - 2574】[Poi1999] Store-Keeper(点双连通分量,求割点,记忆化bfs)
  4. html的技术标准网站,HTML5标准最新技术预览
  5. mysql权重怎么配置_mysql如何按权重查询数据啊?
  6. mysql 异步_MySQL -- 异步I/O
  7. 帧同步_帧同步和状态同步该怎么选(上)
  8. php禁用eval,zp blog
  9. hp 导出日志 远程管理卡_惠普服务器远程管理卡安装详解
  10. leetcode584. 寻找用户推荐人(SQL)