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 · 4420 次点击
    这是一个创建于 1724 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了一篇总结,希望对大家有帮助,欢迎指点 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   ·   我们的愿景   ·   实用小工具   ·   1721 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 16:50 · PVG 00:50 · LAX 09:50 · JFK 12:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.