首頁 > 軟體

idea中的project、module、artifact的具體使用

2022-02-11 22:00:10

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內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com