несколько модулей Go в монореполе и пользовательской структуре каталогов - PullRequest
0 голосов
/ 08 января 2019

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

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

enter image description here

Я хотел бы вызвать функцию 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()
}

mod 2 / mod2_lib / t_lib.go

package mod2_lib

import "fmt"

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

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

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

1 Ответ

0 голосов
/ 08 января 2019

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

...