У меня есть два отдельных Go хранилища. Один содержит приложение, другой - общую библиотеку, которую приложение хотело бы использовать. Ни один из них не находится в $ GOPATH.
~/projects/
├── myapplication
│ ├── go.mod
│ └── myapplication.go
└── mylibrary
├── go.mod
└── mylibrary.go
mylibrary / go .mod
module example.com/mylibrary
go 1.14
mylibrary / mylibrary. go
package mylibrary
var Message = "Hello, World!"
myapplication / go .mod
module example.com/myapplication
go 1.14
myapplication / myapplication. go
package myapplication
import (
"fmt"
"example.com/mylibrary"
)
func main() {
fmt.Println(mylibrary.Message)
}
У меня нет оснований полагать, что вышесказанное должно работать, поскольку приложение не может выяснить, где находится библиотека. Как это сделать?
Я попробовал следующее с результатами теперь.
- добавление
~/projects/mylibrary
к GOPATH - запуск
go install
для mylibrary
Запуск go build
для приложения дает:
myapplication $ go build
go: finding module for package example.com/mylibrary
myapplication.go:5:2: cannot find module providing package example.com/mylibrary: unrecognized import path "example.com/mylibrary": reading https://example.com/mylibrary?go-get=1: 404 Not Found
Я вижу, что он обращается к example.com, чтобы найти хранилище (понятно). Но как я могу сказать, что сначала нужно искать где-то локально?