idea中的project、module、artifact的具體使用
idea中沒有工作空間的概念,每一個項目都是一個工作空間,所以我們打開一個新的項目時往往都要配置一下jdk、編譯版本、編譯輸出路徑、maven打包設置等。project下有一個module的概念,這個module類似於eclipse中的project。如果一個項目是一個聚合工程,那麼它可以配置多個module。module中主要配置這個模塊的代碼結構,編譯輸出路徑,依賴管理等。
jar包項目因為所有的依賴(Tomcat等)都包含在本模塊中,隻要編譯好瞭就可以直接運行。但如果是war包項目,它需要部署在Tomcat等容器中,所以需要有一個artifact。
關於artifact的作用在CSDN中有一個博主是這麼說的:
artifact是一種用於裝載項目資產以便於測試,部署,或者分佈式軟件的解決方案。例如集中編譯class,存檔java應用包,web程序作為目錄結構,或者web程序存檔等
一、Project【工程】
這裡主要針對全局做配置,但是現在的項目一般都是多模塊的,各模塊的具體要求都不盡相同,所以這裡的配置大多都會被module配置覆蓋。
二、Modules【模塊,一個poject可包含多個】
針對各個模塊做配置,我們大部分生效的配置都在這裡
新建module的方法
刪除父項目的src後,再右鍵父項目的new
三、Libraries
pom依賴導入,就可以瞭,這裡就不需要在設置瞭吧?
四、Facets【設置 Tomcat讀取的web.xml配置文件 和 Web資源目錄】
Facets(名詞:方面)
五、Artifacts【項目的打包部署設置,這個是項目配置裡面比較關鍵的地方】
artifact 可以作為存檔文件 ,或者作為包含以下結構元素的目錄結構:
一個或多個編譯模塊、模塊依賴的類庫、Resources 集合、其他 artifacts、獨立的文件目錄或存檔
再白話一點,就是說某個 module 要如何打包
例如 war exploded、war、jar、ear 等等這種打包形式
某個 module 有瞭 Artifacts 就可以部署到應用服務器中瞭
jar:Java ARchive
,通常用於聚合大量的 Java 類文件、相關的元數據和資源(文本、圖片等)文件到一個文件,以便分發 Java 平臺應用軟件或庫
war:Web application ARchive
,一種 JAR 文件,其中包含用來分發的 JSP、Java Servlet、Java 類、XML 文件、標簽庫、靜態網頁(HTML 和相關文件),以及構成 Web 應用程序的其他資源
exploded
:在這裡你可以理解為展開,不壓縮的意思。也就是 war、jar 等沒壓縮前的目錄結構。建議在開發的時候使用這種模式,便於修改瞭文件的效果立刻顯現出來
默認情況下,IDEA 的 Modules 和 Artifacts 的 output 目錄已經設置好瞭,不需要更改,打成 war 包的時候會自動在 WEB-INF 目錄下生成 classes,然後把編譯後的文件放進去。
具體操作:
Web Application: Exploded
,Web Application: Archive
這兩個打包的東西是一樣的,隻不過Archive類型的就是壓縮過的,一般開發時選Exploded類型的。
到此這篇關於idea中的project、module、artifact的具體使用的文章就介紹到這瞭,更多相關idea中的project、module、artifact內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- IntelliJ IDEA中Project與Module的概念以及區別
- 使用IDEA開發配置Java Web的初始化過程
- 詳細總結IDEA中打jar包的兩種方式
- IDEA中打jar包的2種方式(Maven打jar包)
- IDEA 中創建並部署 JavaWeb 程序的方法步驟(圖文)