編譯方式介紹
相比較于 Eclipse 的實(shí)時(shí)自動(dòng)編譯,IntelliJ IDEA 的編譯更加手動(dòng)化,雖然 IntelliJ IDEA 也支持通過設(shè)置開啟實(shí)時(shí)編譯,但是不建議,因?yàn)樘假Y源了。IntelliJ IDEA 編譯方式除了手工點(diǎn)擊編譯按鈕進(jìn)行編譯之外,還有就是在容器[tomcat等]運(yùn)行之前配置上一個(gè)編譯事件,先編譯后運(yùn)行。默認(rèn)下 IntelliJ IDEA 也都是這樣的設(shè)置,所以實(shí)際開發(fā)中你也不用太注意編譯這件事。雖然 IntelliJ IDEA 沒有實(shí)時(shí)編譯,但是對(duì)于代碼檢查完全是沒有影響。但是多個(gè)類之間的關(guān)聯(lián)關(guān)系還是要等 Make 或 Rebuild 觸發(fā)的時(shí)候才會(huì)做相關(guān)檢查的。
在 IntelliJ IDEA 里,編譯方式一共有三種:
- Compile:對(duì)選定的目標(biāo)(Java 類文件),進(jìn)行強(qiáng)制性編譯,不管目標(biāo)是否是被修改過。
- Rebuild:對(duì)選定的目標(biāo)(Project),進(jìn)行強(qiáng)制性編譯,不管目標(biāo)是否是被修改過,由于 Rebuild 的目標(biāo)只有 Project,所以 Rebuild 每次花的時(shí)間會(huì)比較長。
- Make:使用最多的編譯操作。對(duì)選定的目標(biāo)(Project 或 Module)進(jìn)行編譯,但只編譯有修改過的文件,沒有修改過的文件不會(huì)編譯,這樣平時(shí)開發(fā)大型項(xiàng)目才不會(huì)浪費(fèi)時(shí)間在編譯過程中。

- 青色方框所示,Compile 的操作有:Compile 指定類
- 黃色方框所示,Rebuild 的操作有:Rebuild Project
- 紅色方框 所示,Make 的操作有:Make Project、Make Module
運(yùn)行之前的編譯 : IntelliJ IDEA 默認(rèn)在運(yùn)行 JUnit 之前會(huì)先進(jìn)行 Make 操作

IntelliJ IDEA 默認(rèn)在運(yùn)行 tomcat 之前會(huì)先進(jìn)行 Make 操作。

編譯器的設(shè)置和選擇

Paste_Image.png

Paste_Image.png
- 上圖 所示,可以添加目錄 或 文件進(jìn)行編譯排除。
- 在項(xiàng)目中,如果有任何一個(gè)可編譯的文件無法編譯通過,則 IntelliJ IDEA 是無法運(yùn)行起來的,必須等你全部問題解決,編譯通過之后才可運(yùn)行。但是可能開發(fā)過程中,某一個(gè)包目錄的文件編譯無法通過,但是我們又不急著改,那我們就可以考慮把該包加入到排除編譯列表中,則項(xiàng)目就可以運(yùn)行起來。

- 如上圖所示,IntelliJ IDEA 支持常見的幾種編譯器:Javac、Eclipse、Ajc 等。默認(rèn)是 Javac,也推薦使用 Javac。
- Project bytecode version 針對(duì)項(xiàng)目字節(jié)碼編譯版本,一般選擇的是當(dāng)前項(xiàng)目主 JDK 的版本。
- Per-module bytecode version 可以針對(duì) Project 下各個(gè) Module 的特殊需求單獨(dú)設(shè)置不同的 bytecode version,前提是電腦上必須有安裝對(duì)應(yīng)的 JDK 版本?!疽话銢]事也不動(dòng)他們】