一、compiler output和artifacts output目錄
file -> Project Structure…,打開項目配置頁
1、Project compiler output
Project compiler output表示build Project時生成的編譯後.class文件及resources文件存放目錄(包括test)。
如果指定了目錄,則所屬所有模塊的compiler output可以繼承該目錄,即項目所有模塊的compiler output都會在此根目錄下,如下圖所示設置:
2、Modules compiler output
Molules compiler output表示build Project時各個模塊生成的編譯後.class文件及resources文件存放目錄(包括test)。
可以繼承Project,也可以指定自己的。如下圖所示設置:
注: IDEA2017.2之後版本,採用Gradle構建項目時,會採用Gradle的配置,而無視此步IDEA對modules output的配置,每次Gradle reimport都會重置此步配置。這就出現有兩個out目錄或者我明明在IDEA Project Structure指定了output但是gradle reimport後配置失效了。參見:
https://stackoverflow.com/questions/45174989/building-with-intellij-2017-2-out-directory-duplicates-files-in-build-director/46035904#46035904
3、Artifacts compiler output
Artifacts compiler output表示build Artifacts後生成的war包(或jar)以及對應exploded文件存放目錄。如下圖所示設置:
這裏強調下:如想每次rebuild project時,更新tomcat部署下的classes和resources,需要選中Include in project build