介紹
有時一個項目依賴其他多個項目,如果打開多個項目窗口,編譯和運行還是不方便的,本篇文章就介紹在一個項目中如何加入其他的依賴項目。
項目導入
如果一個項目依賴多個項目,最好導入的時候在一個工程下,引入多個模塊,如下添加模塊方式:
之後按照提示一步步進行,一般默認下一步即可。導入後最終工程結構如下所示:
最好重新編譯一下,否則可能會遇到奇怪的錯誤。如果是Maven項目,需要在右側Maven窗口中按照依賴順序安裝下:
運行配置
編譯成功後再來說下運行測試,首先進行運行配置,如果是Java web或SpringMVC項目,需要配置Tomcat環境:
然後設置配置的名字和運行端口:
同時一般下面會提示沒有artifacts運行:
關於Artifact,其實可以簡單理解爲打包的文件和規則。可以點擊右側“Fix”按鈕,或者直接切換到Deployment頁面手動添加,點擊右側的+:
在裏面選擇要運行的war包:
其中ROOT:war是打成war形式,一般用於發佈,而下面的ROOT:war exploded是以資源文件的形式打包,方便調試,所以這裏選擇後者。
手動添加Artifact
如果添加Artifact時發現沒有怎麼辦呢?那隻能自己手動來添加了,首先得添加Facets,因爲是Web項目,所以添加Web:
然後選擇對應的Module:
注意自動生成的web.xml路徑可能不對,覈對一下,如果不對及時修改:
同樣下面的Web Resource目錄也檢查一下:
如果是Spring項目,還要用同樣方法添加一個Spring的Facet,這裏不再贅述。添加後下面警告沒有對應的Artifact,點擊Fix按鈕去創建:
在Artifacts頁面先創建一個空的Artifact:
然後輸入名字並修改類型:
注意war的輸出路徑“Output directory”一定要修改正確,默認是out下某個路徑,要修改爲Module對應的target目錄,否則啓動Tomcat時會找不到war包:
這個Artifact用於打war包,然後再添加一個LNG-manager-service:war exploded,用於說明war包含哪些文件,把剛創建的Facet資源添加進去:
選擇對應Module下的Facet:
注意war exploded的輸出路徑“Output directory”也要修改正確,默認是out下某個路徑,要修改爲Module對應的target目錄,否則啓動Tomcat時會找不到war包:
然後再創建WEB-INF路徑:
同樣方法繼續在WEB-INF下創建classes目錄,並添加編譯輸出項:
接下來就是添加對應的lib了,在右側的“Available Elements”窗口欄中有對應Module所需的Lib,右鍵點擊“Put into /WEB-INF/lib”即可加入:
同理創建META-INF目錄並加入MANIFEST.MF文件,最終添加完目錄入下圖所示:
最後在LNG-manager-service:war中包含剛剛添加的LNG-manager-service:war exploded:
最終結果如下:
部署運行
如果我們調試的工程需要啓動一個以上的Module,則在文章開始說的“Edit Configurations…”配置Tomcat的Deployment頁中依次加入多個war exploded:
項目啓動的順序就是war exploded添加的順序,當然也可以分成兩個配置分別啓動。另外注意的一點就是部署後的訪問路徑,一般添加war exploded後默認的是/XXX_war_exploded路徑:
同時IDEA也會自動給出訪問地址:
如果項目需要部署在根路徑的話,就修改“Application context”的設置路徑:
修改後,訪問路徑會自動替換的:
配置好這些之後,就可以點擊運行按鈕測試了。。。