Wie man ein Verzeichnis als ein Paket in Golang ausschließt
Takashi Yamamoto
Infrastructure Engineer · Leapcell

Key Takeaways
- Ein Verzeichnis wird nur dann als Paket behandelt, wenn es
.go
-Dateien enthält. - Build-Constraints (
// +build tag
) können Dateien von der Kompilierung ausschließen. - IDEs wie GoLand ermöglichen den Verzeichnisausschluss, um die Indizierung zu verhindern.
In Go wird jedes Verzeichnis, das eine oder mehrere Go-Quelldateien (.go
-Dateien) enthält, als Paket betrachtet. Es gibt jedoch Szenarien, in denen Sie möglicherweise ein Verzeichnis davon ausschließen möchten, als Paket behandelt zu werden. Dies kann erreicht werden, indem sichergestellt wird, dass das Verzeichnis keine Go-Quelldateien enthält, oder indem Build-Constraints verwendet werden, um zu verhindern, dass die Dateien in den Build einbezogen werden.
1. Entfernen von Go-Quelldateien aus dem Verzeichnis
Der einfachste Weg, ein Verzeichnis davon auszuschließen, als Paket erkannt zu werden, besteht darin, alle .go
-Dateien aus diesem Verzeichnis zu entfernen. Ohne Go-Quelldateien behandelt die Go-Toolchain das Verzeichnis nicht als Paket.
2. Verwenden von Build-Constraints
Wenn Sie Go-Quelldateien im Verzeichnis behalten müssen, aber verhindern möchten, dass sie in den Build-Prozess einbezogen werden, können Sie Build-Constraints (auch bekannt als Build-Tags) verwenden. Build-Constraints sind spezielle Kommentare, die den Go-Compiler anweisen, Dateien basierend auf bestimmten Bedingungen ein- oder auszuschließen.
Um eine Datei vom Build auszuschließen, fügen Sie oben in der Datei einen Build-Constraint hinzu, der eine Bedingung angibt, die während des Builds nicht erfüllt ist. Sie können beispielsweise ein benutzerdefiniertes Build-Tag exclude
definieren und es wie folgt verwenden:
// +build exclude package yourpackage // Your code here
Standardmäßig ist das exclude
-Tag nicht definiert, sodass der Go-Compiler diese Datei während des Build-Prozesses ignoriert. Um die Datei einzubeziehen, müssten Sie das exclude
-Tag während des Builds angeben:
go build -tags exclude
Weitere Informationen zu Build-Constraints finden Sie in der offiziellen Go-Dokumentation:
https://golang.org/pkg/go/build/#hdr-Build_Constraints
3. Ausschließen von Verzeichnissen in GoLand
Wenn Sie GoLand als integrierte Entwicklungsumgebung (IDE) verwenden, können Sie Verzeichnisse vom Projekt ausschließen, um zu verhindern, dass sie als Pakete behandelt werden. Dies kann nützlich sein, um die Indizierung zu vermeiden oder versehentliche Änderungen zu verhindern.
So schließen Sie ein Verzeichnis in GoLand aus:
- Klicken Sie im Toolfenster „Projekt“ mit der rechten Maustaste auf das Verzeichnis.
- Wählen Sie
Mark Directory as
>Excluded
.
Diese Aktion schließt das Verzeichnis von der Projektansicht und dem Build-Prozess aus.
Durch die Verwendung dieser Methoden können Sie Verzeichnisse effektiv davon ausschließen, in Ihren Go-Projekten als Pakete behandelt zu werden.
FAQs
Nein, Golang erkennt Pakete anhand des Dateiinhalts, nicht anhand der Verzeichnisnamen.
Nein, wenn Build-Constraints angewendet werden, werden sie nicht in den Build einbezogen.
Verwenden Sie .gitignore
oder schließen Sie Verzeichnisse in Build-Skripten aus.
Wir sind Leapcell, Ihre Top-Wahl für das Hosten von Go-Projekten.
Leapcell ist die Next-Gen Serverless Plattform für Webhosting, Async Tasks und Redis:
Multi-Sprachen Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Unbegrenzte Projekte kostenlos bereitstellen
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein Betriebsaufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ