Несколько модулей Go в монореполе и пользовательской структуре каталогов

У меня есть 2, возможно, связанные вопросы.

У меня есть тестовая установка monorepo, с 2 подкаталогами (mod1 а также mod2).
Каждый из них имеет go.mod файл в них, и каждый из модулей имеет один .go файл с основным кодом печати. в mod2 есть подкаталог mod2_lib (который содержит один из тех простых .go файлы с базовым кодом печати), так как я прочитал, что модули Go в основном свои собственные маленькие GOPATH "S.

Я хотел бы вызвать функцию Run() вот в пакете mod2/mod2_lib от mod1, но все, что я получаю, это build github.com/account_name/test/mod1: cannot find module for path 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")
}

Вторая проблема заключается в том, что в этом монореполе я хотел бы иметь связанный код Python и Rust в директориях верхнего уровня. py а также rust, Поэтому я хотел бы разместить все свои пакеты Go в go/src реж. Как другие люди импортируют это go/src путь в их проект (возможно, до сих пор "github.com/account_name/test/mod2/mod2_lib" в качестве пути импорта, а не "github.com/account_name/test/go/src/mod2/mod2_lib")?

Кто-нибудь может дать мне несколько советов по этим вопросам? Я хочу перейти к использованию модулей Golang и отказаться от GOPATH,

1 ответ

Проблема заключалась в том, что это было частное репозиторий на github.com. сделав это публично исправил это!:) Нужно выяснить аутентификацию сейчас для модульной системы.

Другие вопросы по тегам