go - 如何通过 'go mod' 分隔不同目录中的代码?

标签 go

我的源目录布局像

mywork/libA
mywork/libA/liba.go
mywork/libA/go.mod
mywork/progB
mywork/progB/go.mod
mywork/progB/progb.go
  • 在 mywork/libA/目录中,我输入 go mod init example.com/mywork/liba .
  • 在 mywork/progB/目录中,我输入 go mod init example.com/mywork/progb .

  • libA/liba.go
    package liba
    func Hi() string {      return "hi" }
    

    libA/go.mod
    module example.com/mywork/liba
    
    go 1.13
    

    progB/progb.go
    package main
    import "example.com/mywork/liba"
    func main() { println("progb:", liba.Hi()) }
    

    progB/go.mod
    module example.com/mywork/progb
    
    go 1.13
    
    go buildlibA目录是可行的。但是 go build失败 progB并显示

    build example.com/mywork/progb: cannot load example.com/mywork/liba: cannot find module providing package example.com/mywork/liba



    如何纠正它?

    最佳答案

    progB/go.mod 应该在 https://github.com/golang/go/wiki/Modules#can-i-work-entirely-outside-of-vcs-on-my-local-filesystem 中添加 require 和 replace 语句

    module example.com/mywork/progb
    
    require example.com/mywork/liba v0.0.0
    
    replace example.com/mywork/liba => ../libA
    
    go 1.13
    

    关于go - 如何通过 'go mod' 分隔不同目录中的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60348123/

    相关文章:

    Golang通用数据库单条记录转json

    dictionary - 在 golang 中使用私有(private) map 、 slice 的最佳做法是什么?

    mongodb - 如何使用golang将数组对象数据转换为字符串格式数据?

    go - gCloud 实例 : ssh: handshake failed: ssh: unable to authenticate, 尝试的方法 [无公钥],没有支持的方法

    function - 在 Go 中是否可以调用带有命名参数的函数?

    go module @latest 找到但不包含包

    image - 如何获取 image.RGBA 或任何其他类型中特定像素的几何形状?

    json - Golang JSON 解码到字段,但不编码到 JSON 响应

    javascript - GO - html 文件无法加载外部 js 文件

    go - 如何在 Go 包和文件夹中构建代码?