讀古今文學網 > Maven實戰 > 1.2.3 Make >

1.2.3 Make

Make也許是最早的構建工具,它由Stuart Feldman於1977年在Bell實驗室創建。Stuart Feldman也因此於2003年獲得了ACM國際計算機組織頒發的軟件系統獎。目前Make有很多衍生實現,包括最流行的GNU Make和BSD Make,還有Windows平台的Microsoft nmake等。

Make由一個名為Makefile的腳本文件驅動,該文件使用Make自己定義的語法格式。其基本組成部分為一系列規則(Rules),而每一條規則又包括目標(Target)、依賴(Prerequisite)和命令(Command)。Makefile的基本結構如下:

Make通過一系列目標和依賴將整個構建過程串聯起來,同時利用本地命令完成每個目標的實際行為。Make的強大之處在於它可以利用所有系統的本地命令,尤其是UNIX/Linux系統,豐富的功能、強大的命令能夠幫助Make快速高效地完成任務。

但是,Make將自己和操作系統綁定在一起了。也就是說,使用Make,就不能實現(至少很難)跨平台的構建,這對於Java來說是非常不友好的。此外,Makefile的語法也成問題,很多人抱怨Make構建失敗的原因往往是一個難以發現的空格或Tab使用錯誤。