Maven構(gòu)建Web應(yīng)用及版本管理

Web項目的目錄結(jié)構(gòu)

基于Java的web項目,其標(biāo)準(zhǔn)的打包方式是WAR。一個WAR包下至少包含兩個子目錄:WEB-INF和META-INF。META-INF包含了一些打包元數(shù)據(jù)信息,WEB-INF下必須包含一個Web資源表述文件web.xml,它的子目錄classes包含所有該Web項目的類,而另一個子目錄lib則包含該Web項目的依賴Jar包,classes和lib目錄都會在運(yùn)行的時候被加入到Classpath中。

Maven對Web項目的布局結(jié)構(gòu)也有一個通用的約定,必須為Web項目顯式指定打包方式為war(非顯式地指定packaging,Maven會使用默認(rèn)的jar打包方式)。

Maven聲明的Web項目較一般Java項目來說多了一個Web資源目錄,其默認(rèn)位置是src/main/webapp/。該目錄必須包含一個子目錄WEB-INF,該子目錄還必須包含web.xml文件,該目錄其它文件和目錄包括html、jsp、css、JavaScript等,它們與WAR包中的Web資源完全一致。

Maven項目測試建議

可以用單元測試覆蓋的代碼,就不應(yīng)該依賴與Web頁面測試,Web頁面測試應(yīng)該僅限于頁面的層次,例如JSP、CSS、JavaScript的修改。

版本管理

理想的發(fā)布版本應(yīng)當(dāng)對應(yīng)了項目某個時刻比較穩(wěn)定的狀態(tài),這包括源代碼的狀態(tài)以及構(gòu)建的狀態(tài),因此這個時候項目的構(gòu)建應(yīng)該滿足以下條件:

1.所有自動化測試應(yīng)當(dāng)全部通過
2.項目沒有配置任何快照版本的依賴
3.項目沒有配置任何快照版本的插件
4.項目所包含的代碼已經(jīng)全部提交到版本控制系統(tǒng)中

Maven的版本號定義約定是這樣的:<主版本>.<次版本>.<增量版本>-<里程碑版本>

主版本:表示了項目的重大架構(gòu)變更
此版本:表示較大范圍的功能增加和變化,及Bug修復(fù)
增量版本:一般表示種大米Bug的修復(fù)
里程碑版本:往往 指某一個版本的里程碑

主干(trunk)、標(biāo)簽(tag)和分支(branch),對于這幾個知識的深入這里并不打算如此,具體的操作也有對應(yīng)的工具(如git)。

主干:項目開發(fā)代碼的主體,是從項目開始直到當(dāng)前都處于活動的狀態(tài)。從這里可以獲得項目最新的源代碼
以及幾乎所有的變更歷史
分支:從主干的某個點(diǎn)分離出來的代碼拷貝,通??梢栽诓挥绊懼鞲傻那疤嵯略谶@里進(jìn)行重大Bug的修復(fù),
或者做一些實(shí)質(zhì)性的開發(fā)。如果分支達(dá)到了預(yù)期的目的,通常發(fā)生在這里的變更會被合并到(merge)到主干
中
標(biāo)簽:用來表示主干或者分支的某個點(diǎn)的狀態(tài),以代表項目的某個穩(wěn)定狀態(tài),這通常就是版本發(fā)布時的狀態(tài)

文章僅供參考,代碼并不是全正確,只需要知道在對應(yīng)的情況,可以做對應(yīng)的處理,代碼是變化的,我相信原理不變


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容