我有一单回购.假设是github.com/myself/monorepo美元.我有两个服务:service-oneservice-two.每个人都有一个go.mod的文件.

service-one中,我有一个要导入的类型:

package service-one

type StructOne {

}

我从service-two导入它:

package service-two

import pack "github.com/myself/monorepo/service-one"

func MyFunc() {
    var v pack.StructOne
}

service-two go.mod文件中,我try 了两个选项:

要在分支上引用临时提交,请执行以下操作:

require github.com/myself/monorepo/service-one 38e00c33c01a9ac17c177ba25e9764c4d1c1310f

master上引用已标记的提交

require github.com/myself/monorepo/service-one v0.0.0

这两次我都收到如下错误:

 not found: github.com/myself/monorepo/service-one@v0.0.0 invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/vcs/...
   fatal: could not read Username for 'https://github.com': terminal prompts disabled

我应该如何正确地安排存储库?我做错了什么?

推荐答案

致命:无法读取‘https://github.com’:终端提示已禁用‘的用户名

如果这是私有存储库,您应该:

  1. 设置GOPRIVATE=github.com/myself/monorepo,这样它就不会try 从代理服务器下载.
  2. 确保git不需要以交互方式输入密码.例如,使用credential helper存储凭据.

但在此之前,问问自己为什么要创建两个模块.如果没有充分的理由,则创建包含多个包的单个模块.

如果您必须使用多个模块,可以利用工作区简化本地开发.请参见Tutorial: Getting started with multi-module workspaces.

请注意,在存储库中的子目录中定义的模块的标记方式不同.请参见Mapping versions to commits:

如果模块是在存储库内的子目录中定义的,即模块路径的模块子目录部分不为空,则每个标记名必须以模块子目录为前缀,后跟斜杠.例如,模块Golang.org/x/Tools/gopls是在存储库的gopls子目录中定义的,根路径为Golang.org/x/Tools.该模块的版本v0.4.0必须在该存储库中具有名为gopls/v0.4.0的标记.

你的问题中还有另一个问题:

需要githorb.com/my/monorepo/service-one 38e00c33c01a9ac17c177ba25e9764c4d1c1310f

您不应该像这样手动将Commit id放入go.mod文件中.运行以下命令,Go工具将为您将其转换为伪版本并更新go.mod.请参见Pseudo-versions:

  • go get github.com/myself/monorepo/service-one@38e00c33c01a9ac17c177ba25e9764c4d1c1310f
  • go get github.com/myself/monorepo/service-one@master

Go相关问答推荐

如何在Deliverq中高效地传达客户依赖关系?

Golang XML密钥名称冲突

如何使用gopher-lua定义一个Lua函数,该函数有一个预定义的表作为param,Lua脚本可以在其中访问该函数中的表?

重新赋值变量时未清除动态类型-这是错误吗?

什么东西逃到了堆里?

go中跨域自定义验证的问题

如何使用 html/template 在 golang 中运行一个范围内的范围

Fizz对Gin的OpenAPI生成器正在重命名类型

如何从 Go Lambda 函数返回 HTML?

在 Cloud Run 中找不到默认凭据

加密/椭圆:try 在无效点上进行操作

golang yaml 马歇尔网址

在 Go 中公开公共 JWK

将shell输出绑定到Go中的 struct 的最佳方法?

没有堆栈跟踪的 go 程序崩溃是什么意思?

gopls 为 github.com/Shopify/sarama 返回错误gopls: no packages returned: packages.Load error

从 map 返回空数组而不是空字符串数组

Go:为一组单个结果实现 ManyDecode

try 创建新的 etcdv3 客户端时出现pc error: code = Unavailable desc = error reading from server: EOF

如何访问 Go 模板中数组的第一个索引的值