IntelliJ IDEA導入多個項目的配置和運行

介紹

有時一個項目依賴其他多個項目,如果打開多個項目窗口,編譯和運行還是不方便的,本篇文章就介紹在一個項目中如何加入其他的依賴項目。

項目導入

如果一個項目依賴多個項目,最好導入的時候在一個工程下,引入多個模塊,如下添加模塊方式:
模塊導入
之後按照提示一步步進行,一般默認下一步即可。導入後最終工程結構如下所示:
項目結構
最好重新編譯一下,否則可能會遇到奇怪的錯誤。如果是Maven項目,需要在右側Maven窗口中按照依賴順序安裝下:
Maven安裝

運行配置

編譯成功後再來說下運行測試,首先進行運行配置,如果是Java web或SpringMVC項目,需要配置Tomcat環境:
添加Tomcat
然後設置配置的名字和運行端口:
配置名稱和端口
同時一般下面會提示沒有artifacts運行:
警告沒有artifacts
關於Artifact,其實可以簡單理解爲打包的文件和規則。可以點擊右側“Fix”按鈕,或者直接切換到Deployment頁面手動添加,點擊右側的+:
進入Deployment頁面
在裏面選擇要運行的war包:
選擇war包
其中ROOT:war是打成war形式,一般用於發佈,而下面的ROOT:war exploded是以資源文件的形式打包,方便調試,所以這裏選擇後者。

手動添加Artifact

如果添加Artifact時發現沒有怎麼辦呢?那隻能自己手動來添加了,首先得添加Facets,因爲是Web項目,所以添加Web:
Web配置
然後選擇對應的Module:
選擇對應Module
注意自動生成的web.xml路徑可能不對,覈對一下,如果不對及時修改:
覈實web.xml路徑
同樣下面的Web Resource目錄也檢查一下:
檢查Web Resource目錄
如果是Spring項目,還要用同樣方法添加一個Spring的Facet,這裏不再贅述。添加後下面警告沒有對應的Artifact,點擊Fix按鈕去創建:
警告沒有對應的Artifact
在Artifacts頁面先創建一個空的Artifact:
創建空的Artifact
然後輸入名字並修改類型:
修改Artifact名稱
注意war的輸出路徑“Output directory”一定要修改正確,默認是out下某個路徑,要修改爲Module對應的target目錄,否則啓動Tomcat時會找不到war包:
war的輸出目錄
這個Artifact用於打war包,然後再添加一個LNG-manager-service:war exploded,用於說明war包含哪些文件,把剛創建的Facet資源添加進去:
添加Facet資源
選擇對應Module下的Facet:
選擇對應Module
注意war exploded的輸出路徑“Output directory”也要修改正確,默認是out下某個路徑,要修改爲Module對應的target目錄,否則啓動Tomcat時會找不到war包:
修改war exploded的輸出路徑
然後再創建WEB-INF路徑:
創建WEB-INF目錄
同樣方法繼續在WEB-INF下創建classes目錄,並添加編譯輸出項:
添加編譯輸出項
接下來就是添加對應的lib了,在右側的“Available Elements”窗口欄中有對應Module所需的Lib,右鍵點擊“Put into /WEB-INF/lib”即可加入:
添加打包lib
同理創建META-INF目錄並加入MANIFEST.MF文件,最終添加完目錄入下圖所示:
war exploded輸出文件結構
最後在LNG-manager-service:war中包含剛剛添加的LNG-manager-service:war exploded:
war中包含war exploded
選擇對應的war exploded
最終結果如下:
LNG-manager-service:war結構

部署運行

如果我們調試的工程需要啓動一個以上的Module,則在文章開始說的“Edit Configurations…”配置Tomcat的Deployment頁中依次加入多個war exploded:
添加多個war exploded
項目啓動的順序就是war exploded添加的順序,當然也可以分成兩個配置分別啓動。另外注意的一點就是部署後的訪問路徑,一般添加war exploded後默認的是/XXX_war_exploded路徑:
運行根路徑
同時IDEA也會自動給出訪問地址:
訪問地址
如果項目需要部署在根路徑的話,就修改“Application context”的設置路徑:
修改訪問地址
修改後,訪問路徑會自動替換的:
最終訪問地址
配置好這些之後,就可以點擊運行按鈕測試了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章