在修改一個遠古項目的時候,它用的Beego,可是我想run一下的時候,無論是bee run 還是go build,還是刪掉七七八八swagger相關,重新下載生成,都出現程序跑不起來的情況。表現爲:經典的
2019/09/18 14:57:21.534 [I] [asm_amd64.s:1337] http server Running on http://:8080
沒出現在log中。。。我在main的第一行打了個log,也沒有打印。給我一種main都沒執行的感覺。
解決方法:
分析就是什麼東西會搶在main之前:只有import的時候執行的 init()函數。 使用JB家軟件全局搜索:Ctrl + Shift + F, 查找init(), 檢查每一個init()的操作是否存在死循環的風險;如果沒有,那就比較麻煩了,你必須對 package main 裏面的每個 import 依賴的 project 裏面的 init() 檢查。。。爲什麼會出現這種情況?因爲我把 if 寫成 for 了。。。