java代碼
do {time=now} $
infoprint time 》
javac {classpath=… fork=… compatibility=;…} 》
infoprint build successful
這些do 》等函數其實是用SeqCommand BoundCommand等實現的只不過表面上看不到了
更加復雜的邏輯比如包含順序執行也包含錯誤處理的
java代碼
auto (infoprintln build done) $
do {time=now} $
infoprintln (build starting at + time) 》
do {t = readFile file} $
do {t = readFile file} $
let
diff = t t;
writeFile file diff
end
這段腳本要先讀取當前時間然後打印build start然後先後從file和file讀取兩個數然後把這兩個數的差額寫入file 最後無論成功與否打印build done
auto函數的意思是當後面那些東西執行完畢後無論是否出現exception都要打印build done
你如果感興趣可以試著用java或者groovy寫寫看看結果多麼可怕
如此一個完整的build框架就建立起來了我們只要填空式地給系統加入各種command實現一個靈活優美的build tool就出爐了
[] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29268.html