GO Modules 使用

栏目: Go · 发布时间: 6年前

内容简介:旧项目迁移,打算使用GO Modules 作为依赖管理。go版本 1.121. 创建模块的目录 ,并伸出go.mod 文件

旧项目迁移,打算使用GO Modules 作为依赖管理。

go版本 1.12

私人依赖包,如何处理

1. 创建模块的目录 ,并伸出go.mod 文件

mkdir modules
go mod  init modules

2. 创建自己的package目录 如 base

module
    |--- main.go
    |---go.mod
    |---base
            |---testBase.go

其中main.go 的内容

package main
import "modules/base"
func main(){
    base.Test()
}

testBase.go 的文件内容

package base 
import "fmt"
func Test(){
    fmt.Println("Bast Test)
}

可以看到 在任何模块的个人package的引用都必须使用 module/ 开头的路径地址。

再任何文件的 import时,go会再当前目录向上级目录逐级查找go.mod文件,比较mod文件中的 module 名称是否与查找的引用包路径匹配,然后按照引用路径查找。

针对之前没有有使用过go mod 的项目,需要的操作步骤是

1.将原来的src 下的代码拷贝到某个GOPATH之外的目录中,比如 server

2.在server目录下 ,go mod init server ,当前模块的根目录即是 server

3.将其他文件里的个人定义的包的引用路径改为 server/XXX ,以便于可以从模块的根目录找到

4. 在命令行 执行 go build server ,可以刷新所有的引用包且编译出可执行文件

针对国内墙,无法取到某些package的情况

1. 使用 https://goproxy.io ,通过设置

GO Modules 使用

2. 通过go mod  replace命令

比如golang.org/x 下面的package是无法再国内直接获取的,可以通过修改go.mod文件将地址替换为 github上的镜像,基本都可以找到

在生产的go.mod 文件里添加

replace (
     golang.org/x/crypto => github.com/golang/crypto latest
     golang.org/x/net => github.com/golang/net latest
    golang.org/x/sync => github.com/golang/sync latest
     golang.org/x/sys => github.com/golang/sys
     golang.org/x/text => github.com/golang/text 
 )

这样就可以从GitHub上获取对于的包文件

相关文档:

1. https://roberto.selbach.ca/intro-to-go-modules/

这是 Roberto Selbach 大神写的这篇 Step by step的 go mod入门文章,非常好理解

2. https://github.com/golang/go/wiki/Modules

go mod的官方文档,想了解的多一点最好还是通读一下

3. https://roberto.selbach.ca/go-proxies/

最后还有一篇介绍GOPROXY的文章,比较适合对go mod熟悉之后再看


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

解密硅谷

解密硅谷

[美]米歇尔 E. 梅西纳(Michelle E. Messina)、乔纳森 C. 贝尔(Jonathan C. Baer) / 李俊、李雪 / 机械工业出版社 / 2018-12 / 50.00

《解密硅谷》由身处硅谷最中心的连续创业者米歇尔·梅西纳和资深的投资人乔纳森·贝尔联合撰写,二人如庖丁解牛一般为读者深入剖析硅谷成功的原因:从硅谷的创新机制、创业生态、投资领域的潜规则、秘而不宣的价值观等角度,让阅读本书的人能够在最短的时间内,拥有像硅谷人一样的商业头脑,从而快速发现机遇,顺利地躲过创业的坑,熬过创业生死挑战中的劫数,带领初创公司顺利地活下去,并实现快速增长。 如果初创公司能够......一起来看看 《解密硅谷》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具