2017-01-10 34 views
2

我編寫了一些代碼,然後構建應用程序到輸出文件,但有時我只想檢查應用程序是否可構建,即沒有錯誤並生成編譯後的輸出,但沒有實際編寫輸出文件。如何檢查應用程序是否可構建?

我想這個變異,它似乎工作:

go build -o /dev/null myapp 

但我懷疑,必須有一個更加「正式」進入的方式來檢查它是否可以建立。

請指教!

+0

爲什麼不使用測試,以檢查構建? – JimB

回答

0

的一種方法是gofmt -e my_file.go上的所有文件,但是:

  • ,不會很好地擴展
  • 這實際上不報告所有的錯誤,go build威力。

含義:go build -o /dev/null可能仍然是更徹底的方法。

對於剛剛確認語法和結構:see gotype

2

如何檢查是否一展身手的應用程序是可建?

據我瞭解你的問題,你想看看你正在編輯的文件是否沒有錯誤。

那麼你可以使用vim-go plugin vim。

然後設置你的.vimrc創建快捷方式:

"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) 

我用這個作爲我的日常工作生活時,我想看看我的文件中不存在的錯誤,我只需鍵入\+b。然後它將輸出錯誤,而不在終端中輸入go build

希望它有幫助。

0

我使用VSCode,我發現它比Sublime更好,當涉及到this擴展。 當我保存文檔時,它將格式化得很好。它顯示了我在golint幫助下編寫代碼使開發非常易於管理的錯誤。

您也可以像使用gofmt一樣單獨使用golint。 你也可以試試看看。有些爭論圍繞着什麼來使用,但如果可以的話,我只是建議使用兩者。

1

要檢查程序包或應用程序是否可構建,go build是「官方」方式。

你所做的是最簡單的方法。在我看來,你應該堅持下去。或者你可以這樣做:

go build -o delme && rm delme 

但它的有點慢,因爲它有寫的結果,然後將其刪除,但這個解決方案是獨立於平臺(如/dev/null不存在於Windows)。

當建立一個命令(main包),顧名思義go build將創建並離開,結果在當前工作目錄。如果您構建「正常」包(非main),結果將丟棄。查看詳情這裏:What does go build build?

所以,如果你煩惱,你必須使用-o /dev/null PARAM或手動刪除的結果,你可以「改造」你main包非main,姑且稱之爲main2。並添加一個新的main軟件包,該軟件包除了導入並且請求main2.Main()之外不應該做任何其他操作。構建main2包不會留下任何文件。

E.g. 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() { 
    // ... 
} 
相關問題