关于go module

2020.04.29 更新 =======
关于 goland 使用 go module 的最佳实践,参见https://mp.weixin.qq.com/s/CbCbtu-CX9G_FHb2juMjXA
新建工程,GoLand -> Preferences -> Go -> Go Modules 勾选“enable go modules intergration”
在当前工程目录下,go mod init 你的包名,之后:

  1. 直接run工程时,你引用的外部包会自动添加进go.mod
  2. 在工程中想引入自己的库,在go文件中import “你的包名/*****”即可找到

注意:

  • 被引的方法需要大写开头,否则视为私有,不能被外部访问
  • 使用 go module 能避免一些代码环境迁移出现的问题,推荐使用

之前内容 =========

GO111MODULE

输入go env

GO111MODULE="on"

含义:

  • GO111MODULE=off: 不使用 Module-aware mode。
  • GO111MODULE=on: 使用 Module-aware mode,不会去 GOPATH 下面查找依赖包。
  • GO111MODULE=auto或unset: Golang 自己检测是不是使用Module-aware mode。(根据官方描述在不设置GO111MODULE的情况下或者设为auto的时候,如果在当前目录或者父目录中有go.mod文件,那么就使用Module-aware mode, 而go1.12中,如果包位于GOPATH/src下,且GO111MODULE=auto, 即使有go.mod的存在,go仍然使用GOPATH mode)

GO PROXY

GOPROXY环境变量是伴随着modules而生,在go1.13中得到了增强,可以设置为逗号分隔的url列表来指定多个代理,其默认值为https://proxy.golang.org,direct。
direct:表示直接连接,所有direct后面逗号隔开都proxy都不会被使用。
这里可以设置GOPROXY=https://goproxy.io

一般默认没有开,开启方式:
Go版本>=1.13时,使用
go env -w GO111MODULE=on
(<1.13版本的方式)编辑下面的文件,export 设置,然后source文件
vim /etc/profile
vim ~/.zshrc
vim ~/.bash_profile (Linux找环境变量的先后顺序)
注意:在goland里的terminal使用go env 修改不了,会提示冲突,而且如果在preference中勾选里enable gomod,go env出来就是GO111MODULE=on

使用go module导入自己编写的包

工程目录结构如下,


试图在main.go文件中引入modpkg的hello.go的Hello方法和world.go的World结构体

hello.go
world.go
  1. goland设置
    GoLand -> Preferences -> Go -> Go Modules
  1. 在工程目录下打开终端
    go mod init mymod
    路径下生成 go.mod 文件

  2. 在 main.go 中引入

package main

import (
    "fmt"
    "mymod/modpkg"
)

func main()  {
    modpkg.Hello()
    aa:=modpkg.World{}
    fmt.Println(aa)
}

运行结果:

注意:打开go module go get 到的是最新带版本号的包(所以一直开着就完事儿了)

参考:https://blanklin030.github.io/2019/12/05/go-mod-hello/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 在go1.11版本以后go modules成为了go官方的依赖管理方式,替换一起的Godep。使用go modul...
    神奇的考拉阅读 2,911评论 0 1
  • Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了。 下载 下...
    basetree阅读 577评论 0 1
  • 中国一切艺术都讲“气”。“气”是什么?气是“神”,是看不见而又起作用的东西。 关于书法的行气,启功先生说:“不好说...
    郑辉贤国学艺术阅读 865评论 5 15
  • 昨晚一夜无眠,也不知是晚上喝了浓茶的缘故还是因为其他,反正一晚上翻来覆去的无法入睡。好在特殊时期,颠倒黑白的都...
    迎春心语阅读 233评论 0 0
  • 早上准时起床,吃完早饭就准备上舞蹈课,下课后我和同学一起结伴回到了家,在练舞蹈的时候我格外的认真,因为在冬天的时候...
    测谎仪阅读 96评论 0 3