它是通過
<schedule>節點下配置編譯控制節點輕鬆實施編譯腳本的運行日程化.如
最常用的是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"/>