2017-01-10 5 views
2

Ich schreibe etwas Code und dann die App zu einer Ausgabedatei zu bauen, aber manchmal möchte ich nur überprüfen, ob die App erstellbar ist, d. H. Keine Fehler und produziert eine kompilierte Ausgabe, aber ohne tatsächlich die Ausgabedatei zu schreiben.Wie überprüft man, ob eine Go-App buildbar ist?

habe ich versucht, diese Variante und es schien zu funktionieren:

go build -o /dev/null myapp 

Aber ich vermute, es muss eine „offizielle“ Go Art und Weise zu überprüfen, ob sie aufbauen können.

Bitte beraten!

+0

Warum verwenden die Tests nicht die Build überprüfen? – JimB

Antwort

0

Eine Möglichkeit wäre gofmt -e my_file.go auf alle Dateien, aber:

  • , die alle Fehler, die go build könnte in der Tat nicht gut
  • Dies gilt nicht berichten skalieren würde.

Bedeutung: go build -o /dev/null könnte immer noch der gründlichere Ansatz sein.

Für nur Validierung Syntax und Struktur: see gotype

2

Wie zu überprüfen, ob eine Go App erstellbar ist?

Wie ich Ihre Frage verstehe, wollten Sie sehen, ob die Datei, die Sie bearbeiten, keinen Fehler hat.

dann können Sie vim-go plugin für vim verwenden.

Und dann Setup Ihrer .vimrc für die Erstellung der Abkürzung

"shortcut for vim-go 
au FileType go nmap <leader>r <Plug>(go-run) 
au FileType go nmap <leader>b <Plug>(go-build) 
au FileType go nmap <leader>t <Plug>(go-test) 
au FileType go nmap <leader>c <Plug>(go-coverage) 

Ich benutze dies als mein tägliches Leben der Arbeit, wenn ich möchte, dass meine Datei sehen, keinen Fehler hat ich \+b nur eingeben. und dann gibt es den Fehler aus, ohne go build in das Terminal einzugeben.

hoffe es hilft.

0

Ich benutze VSCode und ich habe es gefunden, um besser zu sein als Sublime, wenn es um Go mit this Erweiterung geht. Wenn ich das Dokument speichern, wird es gut formatiert. Es zeigt die Fehler, wie ich Code mit Hilfe von golint schreibe, die Entwicklung sehr machbar machend.

Sie können Golint auch separat wie gofmt verwenden. Sie können auch versuchen, Tierarzt zu gehen. Es gibt Debatten darüber, was wann zu verwenden ist, aber ich würde nur empfehlen, beides zu verwenden, wenn du kannst.

1

Um zu überprüfen, ob ein Paket oder eine App erstellbar ist, ist go build der "offizielle" Weg.

Was Sie getan haben, ist der einfachste Weg. Meiner Meinung nach sollten Sie sich daran halten. Alternativ dazu können Sie tun:

go build -o delme && rm delme 

Aber es ist etwas langsamer als es das Ergebnis zu schreiben hat, die dann gelöscht wird, aber diese Lösung ist plattformunabhängig (als /dev/null nicht auf Windows vorhanden sind).

Wenn ein Befehl (main Paket) Aufbau per Definition go build wird das Ergebnis im aktuellen Arbeitsverzeichnis erstellen und verlassen. Wenn Sie ein "normales" Paket erstellen (nicht main), werden die Ergebnisse verworfen. Details sehen hier: What does go build build?

Also, wenn es Sie stört, dass Sie die -o /dev/null param verwenden oder manuell das Ergebnis löschen, können Sie „verwandeln“ Ihre main Paket zu einem nicht main, nennen wir es main2. Und fügen Sie ein neues main-Paket hinzu, das nichts anderes tun sollte, als main2.Main() zu importieren und aufzurufen. Beim Erstellen des main2 Pakets werden keine Dateien zurückgelassen.

z. myapp/main.go:

package main 

import "myapp/main2" 

func main() { main2.Main() } 

myapp/main2/main2.go:

// Every content you originally had in main.go 

package main2 

func Main() { 
    // ... 
} 
Verwandte Themen