• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[Golang] go modules使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

关于go modules的使用外面的教程实在太多了,我这里只讲下我自己使用的三种情形。

 

准备工作:

1、新建个文件加gomod_test。

2、在这个目录输入命令 go mod init gomod_test

 

情形一:比较常见的情况,引用github的包

比方我有如下代码 main.go

package main

import (
    "fmt"

    "github.com/name/foo"
)

func main() {
      foo.Foo()    
}

直接命令 go mod tidy,然后就可以go build编译

 

情形二:引用自己工程里的包

目录结构如下 

gomod_test

  |-----main.go

  |-----mypackage

      |---------mypackage.go

 

main.go要引用mypackage包,代码改成如下。

注意 "gomod_test/mypackage"gomod_test是我们上面go mod init gomod_test的模块名,mypackage是你的包目录

package main

import (
    "fmt"
   "gomod_test/mypackage"  
    "github.com/name/foo"
)

func main() {
      foo.Foo()   
      mypackage.XXX() 
}

  

情形三:引用本地包

这种情况的原因是:比方我们依赖了github.com/name/mylib这个库,但我们需要在纯内网无外网环境下编译,这时候go get不到github的代码,就需要我们用replace替换成本地包。

1、首先我需要把github.com/name/mylib代码下载下来,你可以直接下载zip,也可以clone,到工程根目录

2、编辑go.mod文件加入下面这一行(也可以用go mod edit命令编辑,更正统一些)

replace github.com/name/mylib=> ./mylib

要确保 ./mylib跟你的下载代码的目录一致

目录结构如下

gomod_test

  |-----main.go

  |-----mypackage

      |---------mypackage.go

  |-----mylib

      |---------mylib.go

 

main.go 改成如下

package main

import (
    "fmt"
    "gomod_test/mypackage"  
    "github.com/name/mylib"
    "github.com/name/foo"
)

func main() {
      foo.Foo()   
      mypackage.XXX()
      mylib.DoXXX()
}

 

其他

1、如果想把将依赖复制到vendor下可以用go mod vendor命令

2、如果想用vendor里的依赖库编译可执行文件可以用命令 go build -mod=vendor


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
2-Go语言基础之基本数据类型发布时间:2022-07-10
下一篇:
Go语言学习之路-1-Go语言环境搭建发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap