Heim >Backend-Entwicklung >Golang >Warum wird in meinem Go-Projekt „Paket XXX ist nicht in GOROOT' angezeigt?

Warum wird in meinem Go-Projekt „Paket XXX ist nicht in GOROOT' angezeigt?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-21 04:06:13400Durchsuche

Why Does My Go Project Show

„Paket XXX ist nicht in GOROOT“ beim Erstellen eines Go-Projekts

Debugging des Fehlers „Paketprojekt/Spiel ist nicht in GOROOT“ erfordert das Verständnis des Konzepts der Go-Module und des Projektlayouts.

Go-Module und -Projekte Struktur:

In neueren Versionen von Go (nach 1.13) werden Go-Module zum Verwalten von Paketabhängigkeiten verwendet. Ein Go-Modul ist normalerweise ein Verzeichnis, das eine go.mod-Datei und Quellcode enthält. Die Datei go.mod deklariert den Namen des Moduls, seine Abhängigkeiten und wo es sich im Dateisystem befindet.

Problemlösung:

  1. Haben Sie eine go.mod-Datei im Projektstammverzeichnis:
    Stellen Sie sicher, dass das Projektstammverzeichnis eine go.mod-Datei enthält. Diese Datei muss sich im Repository befinden und den Modulnamen des Projekts deklarieren.
  2. GOROOT und GOPATH sind nicht erforderlich:
    In neueren Versionen von Go sind Umgebungsvariablen wie GOROOT und GOPATH erforderlich nicht mehr nötig. Paketabhängigkeiten werden über go.mod verwaltet.
  3. Build-Befehl prüfen:
    Überprüfen Sie den Befehl, den Goland zum Erstellen des Projekts verwendet. Es sollte ähnlich sein wie:

    go build -o C:UsersusernameAppDataLocalTemp___go_build_project_server.exe project/server

    Dieser Befehl sollte nicht das GOROOT-Flag angeben.

  4. Annahme eines falschen Paketstandorts:
    Die Fehlermeldung deutet darauf hin Das Projekt erwartet, dass sich das Projekt-/Spielpaket in GOROOT befindet. Dieses Paket sollte sich jedoch im Quellbaum des Projekts befinden.
  5. Paketpfad prüfen:
    Stellen Sie sicher, dass der Paketpfad im Quellcode (z. B. „Projekt/Spiel“) angegeben ist. entspricht dem im Build-Befehl verwendeten Pfad.

Workflow mit Nested Pakete:

Wenn Ihr Projekt über verschachtelte Pakete wie „Projekt/Spiel/Entität“ verfügt, sollten Sie die folgenden zusätzlichen Schritte ausführen:

  1. Erstellen Sie go. Mod-Dateien für Unterverzeichnisse:
    Erstellen Sie eine go.mod-Datei in jedem Unterverzeichnis, das ein eigenes Paket enthält. Diese Datei sollte den Namen des Untermoduls und die Abhängigkeit vom übergeordneten Modul deklarieren.
  2. Pakete in Unterverzeichnisse importieren:
    Im Quellcode des Unterverzeichnisses das Paket aus dem übergeordneten Modul importieren mit der Syntax:

    importieren „Parent/Submodul“

Indem Sie diese Schritte befolgen, können Sie den Fehler „Paketprojekt/Spiel ist nicht in GOROOT“ beheben und Ihr Go-Projekt korrekt mit verschachtelten Paketen erstellen.

Das obige ist der detaillierte Inhalt vonWarum wird in meinem Go-Projekt „Paket XXX ist nicht in GOROOT' angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn