Web項(xiàng)目的目錄結(jié)構(gòu)
基于Java的web項(xiàng)目闽坡,其標(biāo)準(zhǔn)的打包方式是WAR碑定。一個(gè)WAR包下至少包含兩個(gè)子目錄:WEB-INF和META-INF。META-INF包含了一些打包元數(shù)據(jù)信息,WEB-INF下必須包含一個(gè)Web資源表述文件web.xml消别,它的子目錄classes包含所有該Web項(xiàng)目的類,而另一個(gè)子目錄lib則包含該Web項(xiàng)目的依賴Jar包台谢,classes和lib目錄都會(huì)在運(yùn)行的時(shí)候被加入到Classpath中寻狂。
Maven對(duì)Web項(xiàng)目的布局結(jié)構(gòu)也有一個(gè)通用的約定,必須為Web項(xiàng)目顯式指定打包方式為war(非顯式地指定packaging朋沮,Maven會(huì)使用默認(rèn)的jar打包方式)蛇券。
Maven聲明的Web項(xiàng)目較一般Java項(xiàng)目來(lái)說(shuō)多了一個(gè)Web資源目錄,其默認(rèn)位置是src/main/webapp/樊拓。該目錄必須包含一個(gè)子目錄WEB-INF纠亚,該子目錄還必須包含web.xml文件,該目錄其它文件和目錄包括html筋夏、jsp蒂胞、css、JavaScript等条篷,它們與WAR包中的Web資源完全一致骗随。
Maven項(xiàng)目測(cè)試建議
可以用單元測(cè)試覆蓋的代碼,就不應(yīng)該依賴與Web頁(yè)面測(cè)試赴叹,Web頁(yè)面測(cè)試應(yīng)該僅限于頁(yè)面的層次鸿染,例如JSP、CSS乞巧、JavaScript的修改涨椒。
版本管理
理想的發(fā)布版本應(yīng)當(dāng)對(duì)應(yīng)了項(xiàng)目某個(gè)時(shí)刻比較穩(wěn)定的狀態(tài),這包括源代碼的狀態(tài)以及構(gòu)建的狀態(tài)绽媒,因此這個(gè)時(shí)候項(xiàng)目的構(gòu)建應(yīng)該滿足以下條件:
1.所有自動(dòng)化測(cè)試應(yīng)當(dāng)全部通過(guò)
2.項(xiàng)目沒(méi)有配置任何快照版本的依賴
3.項(xiàng)目沒(méi)有配置任何快照版本的插件
4.項(xiàng)目所包含的代碼已經(jīng)全部提交到版本控制系統(tǒng)中
Maven的版本號(hào)定義約定是這樣的:<主版本>.<次版本>.<增量版本>-<里程碑版本>
主版本:表示了項(xiàng)目的重大架構(gòu)變更
此版本:表示較大范圍的功能增加和變化蚕冬,及Bug修復(fù)
增量版本:一般表示種大米Bug的修復(fù)
里程碑版本:往往 指某一個(gè)版本的里程碑
主干(trunk)、標(biāo)簽(tag)和分支(branch)是辕,對(duì)于這幾個(gè)知識(shí)的深入這里并不打算如此囤热,具體的操作也有對(duì)應(yīng)的工具(如git)。
主干:項(xiàng)目開(kāi)發(fā)代碼的主體免糕,是從項(xiàng)目開(kāi)始直到當(dāng)前都處于活動(dòng)的狀態(tài)赢乓。從這里可以獲得項(xiàng)目最新的源代碼
以及幾乎所有的變更歷史
分支:從主干的某個(gè)點(diǎn)分離出來(lái)的代碼拷貝忧侧,通常可以在不影響主干的前提下在這里進(jìn)行重大Bug的修復(fù)牌芋,
或者做一些實(shí)質(zhì)性的開(kāi)發(fā)蚓炬。如果分支達(dá)到了預(yù)期的目的,通常發(fā)生在這里的變更會(huì)被合并到(merge)到主干
中
標(biāo)簽:用來(lái)表示主干或者分支的某個(gè)點(diǎn)的狀態(tài)躺屁,以代表項(xiàng)目的某個(gè)穩(wěn)定狀態(tài)肯夏,這通常就是版本發(fā)布時(shí)的狀態(tài)
文章僅供參考,代碼并不是全正確犀暑,只需要知道在對(duì)應(yīng)的情況驯击,可以做對(duì)應(yīng)的處理,代碼是變化的耐亏,我相信原理不變