„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich ein Go-Projekt mit einer Bibliothek und einer CLI im selben Verzeichnis organisieren?

Wie kann ich ein Go-Projekt mit einer Bibliothek und einer CLI im selben Verzeichnis organisieren?

Veröffentlicht am 23.12.2024
Durchsuche:743

How Can I Organize a Go Project with Both a Library and a CLI in the Same Directory?

Code in Projekten mit mehreren Paketen organisieren

In Go-Projekten, die sowohl eine Bibliothek als auch eine Befehlszeilenschnittstelle (CLI) erfordern, tritt dieses Problem häufig auf dass sich mehrere Pakete im selben Verzeichnis befinden.

Eine solche Projektstruktur:

whatever.io/
    myproject/
        main.go
        myproject.go

Die Pakete main und func main sind für die Initiierung der Ausführung in Go unerlässlich, während eine Bibliothek ein separates Paket erfordert, beispielsweise das Paket myproject. Beim Importieren dieses Projekts kann der Go-Compiler jedoch Folgendes einwenden:

main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject

Lösung: Verschachtelte Pakete

Um dieses Problem zu beheben, platzieren Sie beide Pakete in einem neuen Ordner im selben Verzeichnis wie main.go. Denken Sie daran, die Importanweisungen zu aktualisieren, um auf das neue Paket aus Ihrem $GOPATH zu verweisen.

Zum Beispiel:

whatever.io/
    myproject/
        library/
            myproject.go
        main.go

In main.go importieren Sie das Bibliothekspaket wie folgt:

import "../library/myproject"

Dieser Ansatz gewährleistet eine klare Trennung zwischen den Bibliothek und CLI, während sich beide im selben Verzeichnis befinden können.

Zusätzliche Hinweise

  • Pakete in eine verschachtelte Struktur verschieben hat keinen Einfluss auf die Funktionalität beider Pakete.
  • go run- und go build-Befehle können zum Testen und Erstellen des Projekts verwendet werden.
  • Weitere Details zu den Unterschieden zwischen go finden Sie unter dem bereitgestellten Link build file.go und gehe build.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3