??上一篇舍杜,我們講解了游戲的大概背景妙色,知道了要做什么內(nèi)容∥ψ蹋現(xiàn)在已經(jīng)可以開始搭建游戲的代碼框架。
整體架構(gòu)
??我們將整個(gè)項(xiàng)目命名為idlewow身辨,目前包含以下幾個(gè)模塊idlewow-facade, idlewow-core, idlewow-hessianserver, idlewow-rms, idlewow-util, idlewow-game, idlewow-doc丐谋。
??其中,facade模塊是jar包項(xiàng)目煌珊,供內(nèi)部其他項(xiàng)目引用号俐,主要定義模型類、接口類定庵。core模塊是jar包項(xiàng)目吏饿,實(shí)現(xiàn)系統(tǒng)的主要業(yè)務(wù)邏輯以及對(duì)數(shù)據(jù)庫(kù)的訪問踪危。hessianserver模塊是war包項(xiàng)目,將系統(tǒng)的接口暴露給其他內(nèi)部項(xiàng)目猪落。rms模塊是war包項(xiàng)目贞远,是后臺(tái)運(yùn)營(yíng)系統(tǒng)或叫資源管理系統(tǒng),主要給GM使用许布,進(jìn)行配置兴革,rms模塊本身不訪問數(shù)據(jù)庫(kù),而是通過調(diào)用hessian接口蜜唾,與底層數(shù)據(jù)進(jìn)行交互。game模塊是war包項(xiàng)目庶艾,是web形式的游戲客戶端袁余,部分游戲邏輯寫在此模塊中,也通過hessian接口訪問系統(tǒng)數(shù)據(jù)咱揍。util模塊是jar包項(xiàng)目颖榜,主要實(shí)現(xiàn)一些工具類,供其它模塊引用煤裙。doc項(xiàng)目可有可無掩完,我拿來提交一些sql腳本,策劃表格等內(nèi)容硼砰。整個(gè)項(xiàng)目的架構(gòu)大致如下圖(其中Rest模塊目前并沒有且蓬,僅占位示意):
代碼實(shí)踐
1.新建項(xiàng)目
??打開Idea,左上角菜單File --> New --> Project, 選擇Maven項(xiàng)目题翰,不使用模板恶阴,GroupId、ArtifactId和Projec name都填寫idlewow即可豹障,JDK選擇1.8冯事。(如沒有1.8版本,可在前言章節(jié)中查看下載地址)
??新建完畢后血公,因?yàn)槭莔aven項(xiàng)目昵仅,IDE檢測(cè)到pom.xml會(huì)在右下角彈出提示,如下圖累魔,選擇”Enable Auto-Import"摔笤,開啟自動(dòng)包下載,后面修改pom.xml后薛夜,按Ctrl+S保存即可自動(dòng)更新包籍茧。
2.添加模塊
??idlewow作為根目錄下面不需要寫代碼,src文件夾可以刪掉梯澜。右鍵根目錄寞冯,選擇 New --> Module 來添加模塊渴析。同樣選擇maven項(xiàng)目,不使用模板吮龄。因?yàn)槭且粋€(gè)模塊俭茧,GroupId默認(rèn)為idlewow,以core項(xiàng)目為例漓帚,ArtifactId填寫 idlewow-core母债。點(diǎn)擊下一步,填寫 module name 時(shí)尝抖,會(huì)默認(rèn)沒有中劃線毡们,需要手動(dòng)加上,然后點(diǎn)擊完成即可昧辽。
??然后依次創(chuàng)建各個(gè)模塊衙熔。完成后如下圖:
3.添加依賴關(guān)系
??maven項(xiàng)目通過pom.xml管理依賴,類似于C#里添加DLL引用搅荞,這里根目錄下的pom.xml暫時(shí)無需改動(dòng)红氯。
??首先,在各個(gè)模塊的pom里咕痛,artifactId節(jié)點(diǎn)后面添加 packaging 節(jié)點(diǎn)痢甘,如<packaging>war</packaging>,是war包項(xiàng)目的填寫war茉贡,jar包項(xiàng)目填寫jar塞栅。
在core模塊中,添加依賴如下:
<dependencies>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-facade</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
在hessian模塊中块仆,添加依賴如下:
<dependencies>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-facade</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
在rms模塊中构蹬,添加依賴如下:
<dependencies>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-facade</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
注意:前面的架構(gòu)圖中,rms通過hessian接口訪問數(shù)據(jù)層悔据,此處應(yīng)不必添加對(duì)core的依賴庄敛。但為了開發(fā)和部署方便,實(shí)際開發(fā)時(shí)科汗,我在rms模塊直接引用core層訪問數(shù)據(jù)藻烤。
在game模塊中,添加依賴如下:
<dependencies>
<dependency>
<groupId>idlewow</groupId>
<artifactId>idlewow-facade</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
其他模塊目前無需添加依賴头滔。
4.構(gòu)造web目錄
??因?yàn)橛?個(gè)模塊需要打成war包怖亭,因此必須先構(gòu)造web項(xiàng)目的目錄結(jié)構(gòu),否則打包命令無法成功執(zhí)行坤检。
??在 game, hessian, rms 模塊的src目錄下分別創(chuàng)建 webapp/WEB-INF 文件夾兴猩,并在該目錄下添加web.xml(空文件即可)。完成后目錄結(jié)構(gòu)如下圖:
??另外早歇,因?yàn)椴蛔鰡卧獪y(cè)試倾芝,所有src目錄下的test文件夾均可刪除讨勤。
5.編譯打包
??在左上角菜單選擇 ” Run --> Edit Configurations "(快捷按鈕里直接點(diǎn)也可以),點(diǎn)擊左上角綠色的加號(hào)晨另,選擇Maven(代表使用maven命令或插件來編譯潭千、打包、啟動(dòng)項(xiàng)目)借尿。然后填寫名稱 "idlewow打包"刨晴,選擇根目錄,填寫執(zhí)行命令"clean install"路翻。
??其中狈癞,clean表示清空之前的編譯目錄,install表示把項(xiàng)目編譯茂契,打包亿驾,并更新到本地maven倉(cāng)庫(kù)。
??其實(shí)編譯命令是compile账嚎,打包命令package,maven命令有一個(gè)優(yōu)先級(jí)儡蔓,執(zhí)行install時(shí)郭蕉,會(huì)自動(dòng)執(zhí)行compile, package等等。
如下圖:
點(diǎn)擊OK后喂江,我們執(zhí)行一遍召锈。結(jié)果如下圖,各模塊均編譯打包成功获询。
結(jié)語
??本章簡(jiǎn)要搭建整個(gè)系統(tǒng)的框架涨岁,構(gòu)造了各模塊的文件結(jié)構(gòu),并成功編譯打包吉嚣。
??源碼下載地址:https://idlestudio.ctfile.com/fs/14960372-383321231
??后面將開始對(duì)各模塊的內(nèi)部框架進(jìn)行搭建梢薪。