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: ExplodedWeb Application: Archive
這兩個打包的東西是一樣的,隻不過Archive類型的就是壓縮過的,一般開發時選Exploded類型的。

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

 到此這篇關於idea中的project、module、artifact的具體使用的文章就介紹到這瞭,更多相關idea中的project、module、artifact內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: