本文首發於我的個人博客
這篇文章介紹了作者在使用和編寫自定義啓動腳本時感受到的一個需要注意的點,簡單來說,就是:
一定要打印出事實上的最終啓動命令
自定義啓動腳本的使用場景
我們知道,啓動一個程序需要固定的命令,比如說
- C/C++/Go可以編譯出一個可執行文件,
./app
來啓動 - Java通過JDK
java
命令啓動,java APP
但是,管理大型項目時,未必會是簡單的./app
這樣就可以啓動的,我們有可能會需要傳入許多選項和參數:
./exec -option1 -option2 arg1
./app -debug -entryPoint 3000
而這些選項和參數又有可能依賴於更高級的輸入,比如說配置文件,環境變量等等
這時,就是自動化啓動腳本登場的時候了,通過從高層輸入(比如文件,環境變量)抽取出選項和參數,最終自動形成啓動命令
自動化啓動腳本導致的問題
在各大IDE中,想要使用Debug功能,需要提供的正是最終啓動命令,也就是上文的./app -debug -entryPoint 3000
這種
否則IDE無法調用調試器連接調試端口,也就無法實現單步調試,變量檢查等功能了
但是要想從自動化腳本和當下的高層輸入一起來推算出最終啓動命令,可能是一件比較困難或者至少是麻煩的事情(複雜的自動化啓動腳本可能本身就有上百行)
解決辦法
在自動化腳本啓動最終命令之前,將最終命令打印出來。
這樣,我們就只需要執行一次自動化腳本,而後將打印出來的最終命令提供給IDE,就可以開啓Debug模式了