從零開始實現放置遊戲(一):整體框架搭建
整體架構
我們將整個專案命名為idlewow,目前包含以下幾個模組idlewow-facade,idlewow-core,idlewow-hessianserver,idlewow-rms,idlewow-util,idlewow-game,idlewow-doc。
其中,facade模組是jar包專案,供內部其他專案引用,主要定義模型類、介面類。core模組是jar包專案,實現系統的主要業務邏輯以及對資料庫的訪問。hessianserver模組是war包專案,將系統的介面暴露給其他內部專案。rms模組是war包專案,是後臺運營系統或叫資源管理系統,主要給GM使用,進行配置,rms模組本身不訪問資料庫,而是通過呼叫hessian介面,與底層資料進行互動。game模組是war包專案,是web形式的遊戲客戶端,部分遊戲邏輯寫在此模組中,也通過hessian介面訪問系統資料。util模組是jar包專案,主要實現一些工具類,供其它模組引用。doc專案可有可無,我拿來提交一些sql指令碼,策劃表格等內容。整個專案的架構大致如下圖(其中Rest模組目前並沒有,僅佔位示意):
專案架構圖
操作步驟
1.新建專案
開啟Idea,左上角選單File-->New-->Project,選擇Maven專案,不使用模板,GroupId、ArtifactId和Projec name都填寫idlewow即可,JDK選擇1.8。(如沒有1.8版本,可在前言章節中檢視下載地址)
新建專案
新建完畢後,因為是maven專案,IDE檢測到pom.xml會在右下角彈出提示,如下圖,選擇”Enable Auto-Import",開啟自動包下載,後面修改pom.xml後,按Ctrl+S儲存即可自動更新包。
maven提示框
2.新增模組
idlewow作為根目錄下面不需要寫程式碼,src資料夾可以刪掉。右鍵根目錄,選擇New-->Module來新增模組。同樣選擇maven專案,不使用模板。因為是一個模組,GroupId預設為idlewow,以core專案為例,ArtifactId填寫idlewow-core。點選下一步,填寫module name時,會預設沒有中劃線,需要手動加上,然後點選完成即可。
然後依次建立各個模組。完成後如下圖:
各專案模組
3.新增依賴關係
maven專案通過pom.xml管理依賴,類似於C#裡新增DLL引用,這裡根目錄下的pom.xml暫時無需改動。
首先,在各個模組的pom裡,artifactId節點後面新增packaging節點,如<packaging>war</packaging>,是war包專案的填寫war,jar包專案填寫jar。
在core模組中,新增依賴如下:
- 1 <dependencies>
- 2 <dependency>
- 3 <groupId>idlewow</groupId>
- 4 <artifactId>idlewow-facade</artifactId>
- 5 <version>1.0-SNAPSHOT</version>
- 6 </dependency>
- 7 <dependency>
- 8 <groupId>idlewow</groupId>
- 9 <artifactId>idlewow-util</artifactId>
- 10 <version>1.0-SNAPSHOT</version>
- 11 </dependency>
- 12 </dependencies>
在hessian模組中,新增依賴如下:
- 1 <dependencies>
- 2 <dependency>
- 3 <groupId>idlewow</groupId>
- 4 <artifactId>idlewow-core</artifactId>
- 5 <version>1.0-SNAPSHOT</version>
- 6 </dependency>
- 7 <dependency>
- 8 <groupId>idlewow</groupId>
- 9 <artifactId>idlewow-facade</artifactId>
- 10 <version>1.0-SNAPSHOT</version>
- 11 </dependency>
- 12 </dependencies>
在rms模組中,新增依賴如下:
- 1 <dependencies>
- 2 <dependency>
- 3 <groupId>idlewow</groupId>
- 4 <artifactId>idlewow-facade</artifactId>
- 5 <version>1.0-SNAPSHOT</version>
- 6 </dependency>
- 7 <dependency>
- 8 <groupId>idlewow</groupId>
- 9 <artifactId>idlewow-core</artifactId>
- 10 <version>1.0-SNAPSHOT</version>
- 11 </dependency>
- 12 </dependencies>
注意:前面的架構圖中,rms通過hessian介面訪問資料層,此處應不必新增對core的依賴。但為了開發和部署方便,實際開發時,我在rms模組直接引用core層訪問資料。
在game模組中,新增依賴如下:
- 1 <dependencies>
- 2 <dependency>
- 3 <groupId>idlewow</groupId>
- 4 <artifactId>idlewow-facade</artifactId>
- 5 <version>1.0-SNAPSHOT</version>
- 6 </dependency>
- 7 </dependencies>
其他模組目前無需新增依賴。
4.構造web目錄
因為有3個模組需要打成war包,因此必須先構造web專案的目錄結構,否則打包命令無法成功執行。
在game,hessian,rms模組的src目錄下分別建立webapp/WEB-INF資料夾,並在該目錄下新增web.xml(空檔案即可)。完成後目錄結構如下圖:
檔案結構
另外,因為不做單元測試,所有src目錄下的test資料夾均可刪除。
5.編譯打包
在左上角選單選擇”Run-->Edit Configurations"(快捷按鈕裡直接點也可以),點選左上角綠色的加號,選擇Maven(代表使用maven命令或外掛來編譯、打包、啟動專案)。然後填寫名稱"idlewow打包",選擇根目錄,填寫執行命令"clean install",
其中,clean表示清空之前的編譯目錄,install表示把專案編譯,打包,並更新到本地maven倉庫。
其實編譯命令是compile,打包命令package,maven命令有一個優先順序,執行install時,會自動執行compile,package等等。
如下圖:
點選OK後,我們執行一遍。結果如下圖,各模組均編譯打包成功。
結語
本章簡要搭建整個系統的框架,構造了各模組的檔案結構,併成功編譯打包。
原始碼下載地址:https://idlestudio.ctfile.com/fs/14960372-383321231
後面將開始對各模組的內部框架進行搭建。
相關閱讀:
從零開始實現放置遊戲(一)
作者: 丶謙信
部落格地址:https://home.cnblogs.com/u/lyosaki88/
相關文章
- 從零開始實現放置遊戲(一)遊戲
- 從零開始實現放置遊戲(三):後臺管理系統搭建遊戲
- 從零開始實現放置遊戲(五):管理系統搭建之實現切面日誌遊戲
- 從零開始實現放置遊戲(六):Excel批量匯入遊戲Excel
- 從零開始實現一個RPC框架(零)RPC框架
- 從零開始實現放置遊戲(八)——實現掛機戰鬥(6)程式碼重構遊戲
- 從零開始實現一個RPC框架(一)RPC框架
- 從零開始實現放置遊戲(四)——實現掛機戰鬥(2)實現後臺數值配置遊戲
- 從零開始實現一個RPC框架(四)RPC框架
- 從零開始實現一個RPC框架(二)RPC框架
- 從零開始實現一個RPC框架(五)RPC框架
- 從零開始實現一個RPC框架(三)RPC框架
- 從零開始實現放置遊戲(四)後臺數值配置的增刪查改遊戲
- 從零開始實現放置遊戲(六)——實現掛機戰鬥(4)匯入Excel數值配置遊戲Excel
- 從零開始實現一個分散式RPC框架分散式RPC框架
- 從零開始實現一個IDL+RPC框架RPC框架
- 從零開始實現放置遊戲(五)——實現掛機戰鬥(3)引入日誌功能並實現切面日誌遊戲
- 從零開始實現一個簡易的Java MVC框架JavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(七)–實現MVCJavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(三)--實現IOCJavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(四)--實現AOPJavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(七)--實現MVCJavaMVC框架
- 從零開始的Java RASP實現(一)Java
- 從零開始做一個SLG遊戲(四):UI系統之主介面搭建遊戲UI
- 從零開始實現一個簡易的Java MVC框架(二)--實現Bean容器JavaMVC框架Bean
- 從零開始做一個SLG遊戲(二):用mesh實現簡單的地形遊戲
- 從零開始:用REACT寫一個格鬥遊戲(一)React遊戲
- 從零開始實現簡單 RPC 框架 4:註冊中心RPC框架
- 從零開始搭建一個 hexo 部落格。Hexo
- flutter之從零開始搭建(一)之 BottomNavigationBarFlutterNavigation
- 從零開始搭建一個mock服務Mock
- 從零開始搭建一個vue專案Vue
- 從零開始搭建React應用(一)——基礎搭建React
- Go遊戲服務端框架從零搭建(一)— 架構設計Go遊戲服務端框架架構
- 從零開始用 proxy 實現 Mobx
- 從零開始實現線上直播
- 從零開始實現一個簡易的Java MVC框架(八)–製作StarterJavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(八)--製作StarterJavaMVC框架