go - 如何解决 Go 项目中嵌套应用程序二进制文件中的依赖项?

标签 go dependency-management go-modules

这听起来很愚蠢,但我已经尝试构建我的新 golang 项目一段时间了,但我遇到了以下错误

can't load package: package github.com/kuskmen/yamq/cmd/yamq-client: found packages main (main.go) and yamqclient (yamq-client.go) in C:\projects\yamq\cmd\yamq-client

我知道这应该很容易修复,但我来自 .NET,我在 Go 项目及其依赖项解析模型方面仍然没有经验,因此遇到了困难。

我的项目结构是这样的

/yamq
    /cmd
        /yamq-client          // yamq client application binary
            main.go           // package main
            yamq-client.go    // package yamqclient
        /yamq-server          // yamq server application binary
            main.go           // package main
            yamq-server.go    // package yamqserver
    go.mod                // contains only "module github.com/kuskmen/yamq" for now
    ... // some library files that will probably be moved to /shared folder

到目前为止一切顺利,当我在最外层目录 (/yamq ) 中执行 go build 时,它正在成功构建(或者至少没有显示任何错误),但是当我尝试构建yamq-clientyamq-server 二进制文件我得到了上述错误,每次我尝试用谷歌搜索它或找到有用的东西时,我都会得到一些旧文章或答案可以追溯到 2013 年-2016 暗示了一些关于 $GOPATH 等的东西,这里不应该是这种情况,因为我正在尝试使用 go 模块。

帮助 .NET 开发人员加入 Go 社区,向他解释模块的工作原理,因为我发现了 thisthis没用,或者至少我错过了重点,在此先感谢!

最佳答案

根据我上面的评论跟进:

来自 https://golang.org/doc/code.html :

  • Go programmers typically keep all their Go code in a single workspace.
  • A workspace contains many version control repositories (managed by Git, for example).
  • Each repository contains one or more packages.
  • Each package consists of one or more Go source files in a single directory.
  • The path to a package's directory determines its import path.

关于go - 如何解决 Go 项目中嵌套应用程序二进制文件中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681737/

相关文章:

android - 我的项目没有获取库模块 jar 文件夹中定义的类文件

gradle - Gradle依赖性仅对注释处理器可见

xcode - Cocoapods Private Repo 没有为标签提取正确的代码

PHP/Go 套接字通信

go - 如何为Google存储空间创建文件大小受限的签名URL?

pointers - 在 Go 函数中通过引用和值传递

docker - 如何将 go mod 与本地包和 docker 一起使用?

go - fatal error : concurrent map read and map write

go - 如何在go模块中使用生成的protobuf包?

go - 构建期间的模块依赖缓存问题