登录
首页 >  Golang >  Go问答

monorepo 和自定义目录结构中的多个 Go 模块

来源:stackoverflow

时间:2024-04-07 18:54:35 393浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《monorepo 和自定义目录结构中的多个 Go 模块》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我有 2 个可能相关的问题。

我有一个测试 monorepo 设置,有 2 个子目录(mod1mod2)。

其中每个模块都有一个 go.mod 文件,每个模块都有一个带有基本打印代码的 .go 文件。在 mod2 中有一个子目录 mod2_lib (其中包含带有基本打印代码的简单 .go 文件之一),因为我读到 go 模块基本上是它们自己的小 gopath 的。

我想从 mod1 调用包 mod2/mod2_lib 中的函数 run(),但我得到的只是 build github.com/account_name/test/mod1:找不到路径 github.com/account_name/test 的模块/mod2/mod2_lib

这是我用来解决这个问题的文件:

mod1/t.go

package main

import (
    "fmt"
    "github.com/account_name/test/mod2/mod2_lib"
)

func main() {
    fmt.println("mod1")
    mod2_lib.run()
}

mod2/mod2_lib/t_lib.go

package mod2_lib

import "fmt"

func Run() {
    fmt.Println("RUNS")
}

第二个问题是,在这个 monorepo 中,我希望在顶级目录 pyrust 中包含相关的 python 和 rust 代码。所以我想将所有 go 包放在 go/src 目录中。其他人如何将此 go/src 路径导入到他们的项目中(可能仍然将 "github.com/account_name/test/mod2/mod2_lib" 作为导入路径,而不是 "github.com/account_name/test/去/src/mod2/mod2_lib“)?

有人可以给我一些关于这些问题的指导吗?我想转而使用 golang 模块,并放弃 gopath


解决方案


问题在于它是一个私人 github.com 存储库。公开修复它! :) 现在必须弄清楚模块系统的身份验证。

本篇关于《monorepo 和自定义目录结构中的多个 Go 模块》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>