idea(二)--idea中建立多模組專案、maven多模組開發
一、idea中建立多模組專案(多工程同時開發)
熟悉eclipse、myeclipse的人都知道,eclipse、myeclipse中都有工作的空間(workspace)的概念,一個workspace中可以建立多個project,即可同時開啟多個專案進行開發。然而,遺憾的是在idea中並沒有workspace的概念,取而代之的是project。idea中的project就相當於eclipse中的workspace,而idea中的module就相當於eclipse中的project。
因此,想要在idea中同時開啟多個專案進行開發,可以這樣做:
先new一個project,選擇empty(空白工程,作為工作空間),空白工程的名稱可以以整個專案系統的名稱命名,如果工作空間中都是放些獨立的、關聯不大的小專案,則空白工程可以以當天日期命名。
建立好project(空白工程)後,我們在project(空白工程)中建立module(即具體的專案) 即可。如圖:
new project (empty project)
在project上右鍵new module(具體的專案),new project和new module的嚮導是一樣的,只不過一個是建立專案,一個是建立模組。
二、idea中maven多模組專案的開發
注意,maven中的模組和idea中的模組是完全不同的兩個東西,二者不要混淆。
maven中的模組關注點在maven的依賴體系,而idea中模組僅僅是為了方便idea管理自己project下的多個專案。
idea中的maven多模組開發與eclipse、myeclipse中的maven多模組開發是一樣的,大致結構如下:
一個根工程 (pom)
基礎工程base (jar)
服務子工程1 (jar)
服務子工程1實現工程 (war)
服務子工程2 (jar)
服務子工程2實現工程 (war)
controller工程 (war)
...
另外controller到service子工程的呼叫,還可以使用dubbo、hessian等方式進行遠端呼叫 。例如,我搭建的一個模擬電商系統專案(ecshop)
在project檢視中,我們可以看到 ,整個專案含有 :
ecshop 根工程, pom工程
ecshop-base 專案基礎工程,封裝整個系統中所使用的公共、底層元件,被其他所有工程所依賴 ,它是個jar工程。
ecshop-controller controller工程,它是個web工程,外部可以直接訪問(瀏覽器),它是個war工程。
ecshop-sysService 系統服務工程,jar工程,定義了系統模組的api介面、model 類元模型等, controller工程pom中需引入此工程。
ecshop-sysServiceImpl 系統服務實現工程,war工程,實現sysService中定義的所有介面。
......
當然,如果專案較大 ,你還可以擴充套件新的服務工程和服務實現工程,然後讓controller工程pom中引入新的服務工程即可。