Organisieren eines Go-Projekts mit mehreren Dateien mit privaten Supportdateien

Kennzeichen :

Nach dieser Antwort habe ich folgende Projektstruktur erstellt:

.
├── bin
├── pkg
└── src
    └── github.com
        └── GITHUB_USERNAME
            └── PROJECTNAME
                ├── lib
                │   └── model.go
                │   └── ... .go
                ├── LICENSE
                ├── README.md
                └── PROJECTNAME.go
  • PROJECTNAME.go hat das Paket main
  • model.go hat das Paket PROJECTNAME

Im PROJECTNAME.goimportiere ich folgendes:

import(
    'github.com/GITHUB_USERNAME/PROJECTNAME/lib/model'
) 

aber wenn ich go buildrenne, bekomme ich den folgenden Fehler:

 cannot find package "github.com/GITHUB_USERNAME/PROJECTNAME/lib/model" in any of:
    /usr/lib/go/src/pkg/github.com/GITHUB_USERNAME/PROJECTNAME/lib/model (from $GOROOT)
    /home/USERNAME/go/src/github.com/GITHUB_USERNAME/PROJECTNAME/lib/model (from $GOPATH)

Wie müssen die Paketnamen sein, um korrekt zu importieren? Gibt es andere Strategien?

zeebo:

Paketimportpfade werden durch Verzeichnisnamen und nicht durch Dateinamen definiert.

Der richtige Importpfad lautet "github.com/GITHUB_USERNAME/PROJECTNAME/lib"und alle go-Dateien in diesem Ordner müssen oben dieselbe packageKlausel haben .

Der Bezeichner nach der Paketklausel gibt an, welcher Bezeichner in das Paket importiert wird, das ihn importiert. Wenn dies der package fooFall ist, können Sie über den BarImportcode auf die Kennung zugreifen foo.Bar.

Konventionell verwenden Autoren normalerweise den letzten Teil des Importpfads als packageNamen. In diesem Fall sollten Sie also package liboben in allen Go-Dateien unter dem Ordner lib stehen.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Organisieren eines Go-Projekts mit mehreren Dateien

Erstellen eines Makefile-Projekts mit mehreren .c-Dateien

Ausführen eines Go-Programms mit mehreren Dateien

Linting eines TypeScript-Projekts mit mehreren Einstiegspunkten

Ausführen eines Spring Boot-Projekts mit mehreren Hauptklassen

Verwenden von Git zum Organisieren eines Ordners mit verschiedenen Versionen desselben Projekts

Kompilieren von Projekten mit mehreren Dateien in go

Organisieren Sie die Datenerfassung mit mehreren Überschriften

Organisieren SVN Dateien in Ordnern mit Federwolke Config

Erstellen mit mehreren Dateien in GO (GO1)

Gibt es mit Pest.rs eine bessere Möglichkeit, Grammatiken in mehreren Dateien mit einem Include oder Import zu organisieren?

Das Lesen eines Eingabetyps mit mehreren Dateien zerstört ihn

Ausführen eines Programms mit mehreren Dateien in SLURM

Organisieren eines Seitenbaums mit PHP foreach

Wie kann nur ein Teil eines Maven-Projekts mit mehreren Modulen bereitgestellt werden?

Beziehen Sie das Stammverzeichnis eines Maven-Projekts mit mehreren Modulen von einem Mojo

Fehler beim Ausführen eines Projekts mit mehreren Modulen in IntelliJ IDEA

Sporadische Probleme beim Ausführen eines Java-Projekts mit mehreren Threads in Win7

Erstellen eines Maven-Projekts mit mehreren Modulen für SonarCloud

(Ein besserer Weg, um) Dateien innerhalb eines Projekts mit Eclipse und XText abzurufen

Einschließen von .properties-Dateien beim Erstellen eines Projekts mit ant

Senden eines nativen Projekts mit vollständiger Reaktion, einschließlich aller Dateien, und bereit zum Erstellen

Speichern eines Go-Projekts mit anderen Nicht-Go-Projekten

Erstellen eines Go-Projekts mit portaudio-go unter OS X (+ MacPorts)

Hinzufügen von Abhängigkeiten zu Tests eines anderen Projekts in einem Kotlin-Build mit mehreren Plattformen und mehreren Projekten

Projekt mit mehreren Dateien in Golang

Dateien mit mehreren Suchkriterien kopieren

Dateien mit mehreren Bedingungen auflisten

POST StreamContent mit mehreren Dateien

TOP Liste

  1. 1

    Hangfire funktioniert nicht wie erwartet mit ASP.NET Core 3.1

  2. 2

    Konvertiert nicht von Methodengruppe in Func <int>

  3. 3

    Wie berechnet man den Gesamtpreis einer Bestellung mit Rails?

  4. 4

    Identifizieren Sie die Werte der ersten Spalte pro ID und arbeiten Sie basierend auf diesem Wert

  5. 5

    Konvertieren Sie eine Textdatei mit mehreren Trennzeichen in CSV

  6. 6

    So greifen Sie auf eine Variable in einer Singleton-Klasse zu, die von einem Modul in Play 2.5 Scala verwendet wird

  7. 7

    So aktualisieren oder aktualisieren Sie alle Fragmente vom Viewpager Android

  8. 8

    Wie implementiere ich die "equals" -Methode für Generika mit "instanceof"?

  9. 9

    Probleme beim numerischen Integrieren einer multivariablen Funktion WRT einer einzelnen Variablen in Julia (mit hcubature)

  10. 10

    Was ist die idiomatischste Rust-Methode, um ein optionales Element eines Vec bedingt zu ändern?

  11. 11

    Printf gibt Zeichen aus, die über die angegebene Länge des Arrays hinausgehen

  12. 12

    So installieren Sie ein privates NPM-Paket über SSH

  13. 13

    findOneAndUpdate mit Push-Array-Elementen gibt Fehler im Mungo

  14. 14

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  15. 15

    Verwendung eines Winkelmessers für Leistungstests

  16. 16

    Wie erstelle ich ein Objekt für ein Django-Modell mit vielen zu vielen Feldern?

  17. 17

    Beziehungen auf zusammengesetzten Schlüsseln mit sqlalchemy

  18. 18

    c # itextsharp absolute Textposition mehrzeilig

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Sind die folgenden 3 Möglichkeiten, Objekte zu definieren, identisch?

  21. 21

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

heißlabel

Archiv