Я создаю проект go с версией 1.12.1. Если я запускаю GOPATH="$(pwd)/vendor:$(pwd)" GOBIN="$(pwd)/bin" go clean
, я получаю следующую ошибку:
can't load package: package github.com/marvincaspar/go-example: unknown import path "github.com/marvincaspar/go-example": cannot find module providing package github.com/marvincaspar/go-example
Это только для go clean
, go run
или go build
работает нормально.
Вот структура папок основного кода:
.
├── Makefile
├── cmd
│ └── server
│ └── main.go
├── go.mod
├── go.sum
└── pkg
└── storage
└── mysql
└── storage.go
Вот как выглядит файл go.mod
:
module github.com/marvincaspar/go-example
go 1.12
require (
github.com/go-sql-driver/mysql v1.4.1
)
И, наконец, файл main.go
:
package main
import (
"fmt"
"os"
"github.com/marvincaspar/go-example/pkg/storage/mysql"
)
func main() {
if err := run(); err != nil {
fmt.Fprintf(os.Stderr, "%v", err)
os.Exit(1)
}
}
func run() error {
// init storage
s := mysql.NewStorage()
// do some other stuff...
}
Есть идеи, что я делаю неправильно?
go clean
приводит к этой ошибке. И если вы делаете сборку модуля, не отвлекайтесь на разговоры о GOPATH или GOBIN. Также обратите внимание, чтоgo clean
не работает при запуске из каталога без исходного кода (github.com/golang/go/ issues / 31002). Куда ты бежишь, убирайся? Кажется, все работает нормально, и вы пытаетесь очистить место, где чистить нечего. - person Volker   schedule 11.04.2019GOPATH
для включения каталогаvendor
(GOPATH="$(pwd)/vendor:$(pwd)"
). - person typical182   schedule 01.08.2019