У меня проблемы с новой модульной системой, так как я хочу определить локальный модуль и импортировать его в основную программу. Локальный пакет находится в папке основной папки пакета/корня. Представьте себе следующую структуру проекта за пределами $GOPATH
.
Структура проекта
./main.go
package main
import "fmt"
import "example.com/localModule/model"
func main() {
var p = model.Person{name: "Dieter", age:25}
fmt.Printf("Hello %s\n", p.name)
}
./model/person.go
package model
type Person struct {
name string
age int
}
В корневой папке я инициализировал модуль, вызывая
go mod init example.com/localModule
В model/
папке я затем инициализировал подмодуль, вызывая
go mod init example.com/localModule/model
Ошибка
В корневой папке вызывается вызов следующих команд.
$ go get
go build example.com/localModule/model: no Go files in
$ go build
main.go:4:8: unknown import path "example.com/localModule/model": cannot find module providing package example.com/localModule/model
Сообщение об ошибке для go get отключено, я не ошибаюсь.
Я не планирую нажимать модуль на сервер и просто нужен способ ссылки на локальную model
пакета, поэтому я выбрал example.com/localModule/
и example.com/localModule/model
соответственно.
Я использую go1.11 darwin/amd64
на Macbook с MacOS 10.13.6.