go version go1.15.2
Gemäß der empfohlenen Verzeichnisstruktur der Go Language Community ist das Standard-Paketverwaltungssystem "Go Modules / go / wiki / Modules) ”war subtil süchtig danach. Ich habe den gleichen Artikel wie ein Memo auf meiner Website geschrieben, aber ich habe ihn auch auf Qiita abgelegt, weil ich Tsukkomi wollte.
Namen (und Unterelemente) mit einem Ausrufezeichen (!) Sind beliebige Bezeichner.
my_project(!)
├── web #Vom Websystem verwendete Off-System-Ressourcen. js oder Bilder
├── assets #Externe Ressourcen, die außerhalb des Websystems verwendet werden.
├── cmd #Hauptmodul speichern
│ ├── mainexe(!) #Ausführungsdatei im Projekt. Bauen Sie diese Einheit ein
│ │ └── main.go
│ └── confexe(!) #Ein weiteres Beispiel für eine Ausführungsdatei
│ └── main.go
├── configs #Einstellungsdatei
│ └── main.yaml(!)
├── docs #Dokument. Weil es für mich ist, schreibe ich ein Memo
│ └── readme.md
├── internal #Privates Modul
│ ├── app #Ein Modul für dieses Projekt. Ist es Geschäftslogik?
│ │ ├── mainexe(!) #Durch ausführbare Datei trennen
│ │ │ └ mainview #Service-ähnliches Gefühl in MVCS?
│ │ │ └ mainview.go
│ │ └── confexe(!)
│ │ └ mainview
│ │ └ mainview.go
│ └── pkg #Privates Universalmodul
│ └ my_lib(!) #Etwas zum Wiederverwenden
├── scripts #Shell, die zur Erstellungszeit verwendet wird usw.
└── go.mod #Vom Go-Modul generierte Dateien
cd my_project
go mod init 192.168.0.0/my_project
In dieser Hinsicht wurde der Hostname auf 192.168.0.0 festgelegt.
Nicht als Modul veröffentlicht = Es wird nicht von go get abgerufen, hat also keine andere Bedeutung als nur eine Zeichenfolge. (Ich denke) Alles sollte in Ordnung sein, solange es den Punkt (.) Enthält. Dies ist die Regel des Hostnamens. Initialisieren Sie einschließlich des Ganzen, nicht unter cmd (Moduleinheit).
package main
import (
"192.168.0.0/my_project/internal/app/mainexe/mainview"
)
func main() {
mainview.SomeFunction()
}
Sie können es problemlos verwenden.
build
go build -o mainexe cmd/mainexe/*.go
Die Option o gibt den Namen der Ausgabedatei an. Im obigen Beispiel wird es direkt unter dem Projektverzeichnis ausgegeben. Sie können ein Verzeichnis wie dist erstellen und es als Ausgabezielpfad einfügen.
Persönlich habe ich build.sh im Skriptverzeichnis und erstellt Ich habe den obigen Befehl geschrieben und ihn mit "./scripts/mainexe_build.sh" ausgeführt.
Golang wurde lange Zeit verlassen, daher bin ich immer noch ein Anfänger, obwohl es einige alte Artikel gibt. Wenn Sie Tsukkomi haben, bitte m (_ _) m