============本文轉自http://lavasoft.blog.51cto.com/62575/436216,在此感謝原作者的成果===============
Compile、Make和Build的區別
針對Java的開發工具,一般都有Compile、Make和Build三個菜單項,完成的功能的都差不多,但是又有區別。
編譯,是將源代碼轉換為可執行代碼的過程。編譯需要指定源文件和編譯輸出的文件路徑(輸出目錄)。Java的編譯會將java編譯為class 文件,將非java的文件(一般成為資源文件、比如圖片、xml、txt、poperties等文件)原封不動的復制到編譯輸出目錄,並保持源文件夾的目 錄層次關系。
在Java的集成開發環境中,比如Eclipse、IDEA中,有常常有三種與編譯相關的選項Compile、Make、Build三個選項。這三個選項最基本的功能都是完成編譯過程。但又有很大的區別,區別如下:
1、Compile:只編譯選定的目標,不管之前是否已經編譯過。
2、Make:編譯選定的目標,但是Make只編譯上次編譯變化過的文件,減少重復勞動,節省時間。(具體怎么檢查未變化,這個就不用考慮了,IDE自己內部會搞定這些的)
3、Build:是對整個工程進行徹底的重新編譯,而不管是否已經編譯過。Build過程往往會生成發布包,這個具體要看對IDE的配置 了,Build在實際中應用很少,因為開發時候基本上不用,發布生產時候一般都用ANT等工具來發布。Build因為要全部編譯,還要執行打包等額外工 作,因此時間較長。