編譯方式介紹
相比較于 Eclipse 的實時自動編譯麸拄,IntelliJ IDEA 的編譯更加手動化,雖然 IntelliJ IDEA 也支持通過設(shè)置開啟實時編譯黔姜,但是不建議拢切,因為太占資源了。IntelliJ IDEA 編譯方式除了手工點擊編譯按鈕進行編譯之外秆吵,還有就是在容器運行之前配置上一個編譯事件淮椰,先編譯后運行。默認(rèn)下 IntelliJ IDEA 也都是這樣的設(shè)置纳寂,所以實際開發(fā)中你也不用太注意編譯這件事主穗。雖然 IntelliJ IDEA 沒有實時編譯,但是對于代碼檢查完全是沒有影響毙芜。但是多個類之間的關(guān)聯(lián)關(guān)系還是要等 Make 或 Rebuild 觸發(fā)的時候才會做相關(guān)檢查的忽媒。
在 IntelliJ IDEA 里,編譯方式一共有三種:
Compile:對選定的目標(biāo)(Java 類文件)腋粥,進行強制性編譯晦雨,不管目標(biāo)是否是被修改過。
Rebuild:對選定的目標(biāo)(Project)灯抛,進行強制性編譯金赦,不管目標(biāo)是否是被修改過,由于 Rebuild 的目標(biāo)只有 Project对嚼,所以 Rebuild 每次花的時間會比較長夹抗。
Make:使用最多的編譯操作。對選定的目標(biāo)(Project 或 Module)進行編譯纵竖,但只編譯有修改過的文件漠烧,沒有修改過的文件不會編譯,這樣平時開發(fā)大型項目才不會浪費時間在編譯過程中靡砌。
如上圖標(biāo)注 1 所示已脓,Compile 的操作有:Compile指定類
如上圖標(biāo)注 1 所示,Rebuild 的操作有:Rebuild Project
如上圖標(biāo)注 1 所示通殃,Make 的操作有:Make Project度液、Make Module
如上圖所示,IntelliJ IDEA 默認(rèn)在運行 JUnit 之前會先進行Make操作画舌。
如上圖所示堕担,IntelliJ IDEA 默認(rèn)在運行 tomcat 之前會先進行Make操作。
上圖標(biāo)注 1 所示曲聂,也是我們本文前面講的霹购,IntelliJ IDEA 是支持自動編譯的,默認(rèn)是不開啟的朋腋,也建議不用開啟齐疙,原因前面已經(jīng)說了膜楷。
上圖標(biāo)注 2 所示,設(shè)置編譯heap大小贞奋,默認(rèn)是700赌厅,建議使用 64 位的用戶,在內(nèi)存足夠的情況下忆矛,建議改為1500或以上察蹲。如果你在編譯的時候出錯,報:OutOfMemoryError催训,一般也是要來改這個地方洽议。
上圖標(biāo)注 3 所示,還可以設(shè)置編譯時的VM參數(shù)漫拭,這個你可以根據(jù)需求進行設(shè)置亚兄,一般人是用不上的。
如上圖標(biāo)注 1 所示采驻,可以添加目錄 或 文件進行編譯排除审胚。
在項目中,如果有任何一個可編譯的文件無法編譯通過礼旅,則 IntelliJ IDEA 是無法運行起來的膳叨,必須等你全部問題解決,編譯通過之后才可運行痘系。但是可能開發(fā)過程中菲嘴,某一個包目錄的文件編譯無法通過,但是我們又不急著改汰翠,那我們就可以考慮把該包加入到排除編譯列表中龄坪,則項目就可以運行起來。
如上圖動態(tài) Gif 所示复唤,IntelliJ IDEA 支持常見的幾種編譯器:Javac健田、Eclipse、Ajc等佛纫。默認(rèn)是Javac妓局,也推薦使用Javac。
Project bytecode version針對項目字節(jié)碼編譯版本呈宇,一般選擇的是當(dāng)前項目主 JDK 的版本跟磨。
Per-module bytecode version可以針對Project下各個Module的特殊需求單獨設(shè)置不同的bytecode version,前提是電腦上必須有安裝對應(yīng)的 JDK 版本攒盈。