Cruise Control exec 報錯的解決java.io.IOException: CreateProcess error=2

Cruise Control是個簡易使用及配置性極強的輕量級產品日編譯工具.
它是通過<schedule>節點下配置編譯控制節點輕鬆實施編譯腳本的運行日程化.如
CC
最常用的是ant(java工程中流行),maven,及通用的exec(只要有shell腳本如.sh,.bat,.exe,.cmd等).而其實前兩者不容易出錯,後者卻遇到了以下問題:
Caused by: java.io.IOException: Cannot run program "DailyBuild.bat"...java.io.IOException: CreateProcess error=2

而現在的問題是覺得<exec>節點的workingdir屬性設置正確,而command 屬性也是指向了要執行的批處理文件"DailyBuild.bat",爲什麼還要報錯呢?於是先把相對路徑全改成了絕對,發現不行;又試了把workingdir屬性去掉,把command屬性寫全路徑(因爲工作目錄去掉了,所以一定得寫全),發現能運行了,只是報錯,因爲引用不對了. 這樣一來,問題明瞭了,補回workingdir屬性,運行成功!
得出這樣的結論,workingdir屬性會讓人產生錯覺使你在command屬性中不再寫這個所謂重複的工作目錄部分了,而實際上恰恰要寫全路徑.效果可能類似這樣的:)
<exec
             workingdir="projects/${project.name}/deploy/build/"
            command="projects/${project.name}/deploy/build/DailyBuild.bat"
            errorstr="build failed"/>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章