深入浅出 Go Modules - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
caojunxyz
V2EX    Go 编程语言

深入浅出 Go Modules

  •  
  •   caojunxyz 2019-08-07 10:23:24 +08:00 5061 次点击
    这是一个创建于 2310 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了一篇总结,希望对大家有帮助,欢迎指点 https://blog.caojun.xyz/posts/gomodules/

    32 条回复    2019-08-09 09:59:42 +08:00
    deepzz
        1
    deepzz  
       2019-08-07 11:51:28 +08:00 via iPhone
    哇,军哥好。
    caojunxyz
        2
    caojunxyz  
    OP
       2019-08-07 12:03:09 +08:00
    @deepzz 哈哈
    loading
        3
    loading  
       2019-08-07 12:25:15 +08:00 via Android
    老曹牛逼!
    lupo
        4
    lupo  
       2019-08-07 12:29:39 +08:00
    看来楼主叫曹军
    stanjia
        5
    stanjia  
       2019-08-07 12:30:34 +08:00
    军曹电玩??
    caojunxyz
        6
    caojunxyz  
    OP
       2019-08-07 12:32:15 +08:00
    @loading 写了没人看,厚着脸皮来发一下,给自己一点动力
    Aruforce
        7
    Aruforce  
       2019-08-07 13:39:53 +08:00
    自己弄着写过关于这个文档...

    最好还是不要在 gopath 中使用 go module... 并不怎么好使...

    感觉就是 对以前只有一个 gopath 这种脑子里有屎的设定进行的一次填坑...

    除此之外...用了 go moduel ..编译什么的时候 编译器就会傻逼似的要去 pkg mod 下面找文件...即使当前 src 下面有源代码 也会被忽略 胃疼...
    glues
        8
    glues  
       2019-08-07 13:41:52 +08:00 via Android
    曹军
    hsuehsen
        9
    hsuehsen  
       2019-08-07 13:44:07 +08:00
    @Aruforce
    除此之外...用了 go moduel ..编译什么的时候 编译器就会傻逼似的要去 pkg mod 下面找文件...即使当前 src 下面有源代码 也会被忽略 胃疼...

    ----------------------------------------
    用 replace 就可以
    liuxey
        10
    liuxey  
       2019-08-07 13:54:31 +08:00
    GOPATH 的设计和新版本的 GO MODULE 再加上这个网络能把你搞疯,我觉得先等 Go 稳一稳再上车好
    SecretManConnan
        11
    SecretManConnan  
       2019-08-07 14:26:48 +08:00
    @liuxey 这就是做 go 这门语言,之前啥都没有想好。然后又跟不上现代化语言必要的东西~ 各种历史包袱,难受
    Va1n3R
        12
    Va1n3R  
       2019-08-07 15:05:31 +08:00
    GO MODULE 目前还不成熟。。之前编译 gitea 的时候烦死我了,总是莫名其妙的说 hash 对不上,进去把 sum 删了就行..还是等一个优化吧
    likaka
        13
    likaka  
       2019-08-07 15:15:17 +08:00
    深入浅出。。。。我怀疑你再开车
    Aruforce
        14
    Aruforce  
       2019-08-07 15:40:42 +08:00
    @hsuehsen 怎么个意思?怎么操作的?
    Carseason
        15
    Carseason  
       2019-08-07 15:42:50 +08:00 via iPhone
    bee 的热更新不能用在 go modules 上,难受
    caojunxyz
        16
    caojunxyz  
    OP
       2019-08-07 23:03:54 +08:00
    @Aruforce 把 GO111MODULE 环境变量 unset 或者设置为 auto 就可以关掉 module 模式,这样就不回去 pkg/mod 目录找了
    caojunxyz
        17
    caojunxyz  
    OP
       2019-08-07 23:04:43 +08:00
    @liuxey 网络问题很容易解决,是开发的基础设施啊
    caojunxyz
        18
    caojunxyz  
    OP
       2019-08-07 23:05:28 +08:00
    @Va1n3R 我暂时还没遇到坑
    caojunxyz
        19
    caojunxyz  
    OP
       2019-08-07 23:05:45 +08:00
    @likaka 请大佬指点
    caojunxyz
        20
    caojunxyz  
    OP
       2019-08-07 23:07:07 +08:00
    @Carseason bee 的热更新本来也是方便开发,我的理解良好的语义化的版本管理更适合正式发布
    liuxey
        21
    liuxey  
       2019-08-07 23:10:33 +08:00
    @caojunxyz #17 我知道每个问题都有解决办法,但是这一堆问题摆在初学者面前就是大山,我也并不是说不建议使用,作为兴趣完全可以搞一搞,但想要做主业需要三思
    targetliu
        22
    targetliu  
       2019-08-07 23:14:14 +08:00
    @liuxey
    GOPROXY 了解一下
    1.13 还可以设置 GOPRIVATE 来访问私有仓库
    再加上 GO SUM 来验证
    感觉 1.13 可以上车了
    gamexg
        23
    gamexg  
       2019-08-07 23:19:00 +08:00
    @liuxey #21 golang 新版本支持代理(第三方库镜像)了,
    国内七牛、阿里提供了国内镜像,算是解决了网络问题。
    rrfeng
        24
    rrfeng  
       2019-08-07 23:20:40 +08:00 via Android
    很好用,没遇到问题。
    之前的第三方方案都没用过,因为花了十分钟没看懂…
    go mod 就很好理解了。
    blless
        25
    blless  
       2019-08-07 23:21:07 +08:00
    没有写 goproxy?
    @Va1n3R 1.13 出了 sumdb 或者可以忽略 sum,或者设置私有 repo,个人觉得 1.13 已经完整了
    caojunxyz
        26
    caojunxyz  
    OP
       2019-08-07 23:25:10 +08:00
    @blless 忽略了这一点,回头抽时间更新一下。主要平时公司和家里都是无障碍网络……
    charten
        27
    charten  
       2019-08-08 09:28:18 +08:00
    一般这种用 github 作为第三方包源的仓库,都是要先 fork 才能用?
    caojunxyz
        28
    caojunxyz  
    OP
       2019-08-08 10:19:26 +08:00
    @charten 不需要,也不建议。使用 fork 的不方便同步 upstream 的更新。除非你要自己修改开源的东西
    Aruforce
        29
    Aruforce  
       2019-08-08 10:59:45 +08:00
    @caojunxyz #16 要是这么做 就不是解决问题 而是回避问题了 在 go mod 开和不开 之间 反复横跳 ?
    Oktfolio
        30
    Oktfolio  
       2019-08-08 15:11:57 +08:00
    go module 是真的好用了,govendor、go dep 是真的不行
    hsuehsen
        31
    hsuehsen  
       2019-08-08 18:57:26 +08:00
    @Aruforce 类似这样,直接可以用 replace 把远端仓库的 replace 为本地源码或别的仓库
    module github.com/notedit/rtclive

    require (
    github.com/akamensky/argparse v0.0.0-20190115094700-b33e05fb8d69
    github.com/gin-contrib/cors v0.0.0-20190101123304-5e7acb10687f
    github.com/gin-gonic/gin v1.3.0
    github.com/gofrs/uuid v3.2.0+incompatible
    github.com/notedit/media-server-go v0.1.12
    github.com/notedit/rtmp-lib v0.0.2
    github.com/notedit/sdp v0.0.1
    gopkg.in/yaml.v2 v2.2.2
    )

    replace github.com/notedit/media-server-go v0.1.12 => ../../media-server-go
    Aruforce
        32
    Aruforce  
       2019-08-09 09:59:42 +08:00
    @hsuehsen 那我去实践下...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5189 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:04 PVG 16:04 LAX 00:04 JFK 03:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86