web-dev-qa-db-fra.com

Go Mod: Impossible de trouver le module fournissant un package

Je crée un projet Go avec la version 1.12.1. Si j'exécute GOPATH="$(pwd)/vendor:$(pwd)" GOBIN="$(pwd)/bin" go clean Je reçois l'erreur suivante:

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

Ceci est seulement pour go clean, go run ou alors go build fonctionne bien.

Voici la structure de dossiers du code principal:

.
├── Makefile
├── cmd
│   └── server
│       └── main.go
├── go.mod
├── go.sum
└── pkg
    └── storage
        └── mysql
            └── storage.go

Voici comment la go.mod Le fichier ressemble à:

module github.com/marvincaspar/go-example
go 1.12

require (
    github.com/go-sql-driver/mysql v1.4.1
)

Et enfin le main.go fichier:

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...
}

Des idées ce que je fais mal?

16
Marvin Caspar

Normalement, cette nouvelle approche du projet fonctionne pour moi:

go mod init <project_name>
go test

J'ai constaté que les projets en dehors de Goroot et de GoPath sont beaucoup plus faciles