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

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對Web項(xiàng)目的布局結(jié)構(gòu)也有一個(gè)通用的約定,必須為Web項(xiàng)目顯式指定打包方式為war(非顯式地指定packaging,Maven會(huì)使用默認(rèn)的jar打包方式)。

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

Maven項(xiàng)目測試建議

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

版本管理

理想的發(fā)布版本應(yīng)當(dāng)對應(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)化測試應(yīng)當(dāng)全部通過
2.項(xiàng)目沒有配置任何快照版本的依賴
3.項(xiàng)目沒有配置任何快照版本的插件
4.項(xiàng)目所包含的代碼已經(jīng)全部提交到版本控制系統(tǒng)中

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

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

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

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

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


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

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

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,290評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 1.簡介 之前的maven項(xiàng)目打包類型都為pom或者POM,今天講一下用maven構(gòu)建web應(yīng)用,web應(yīng)用的打包...
    zlcook閱讀 3,525評論 0 12
  • Maven簡單介紹 Maven是一個(gè)項(xiàng)目管理工具。強(qiáng)大,但是很容易使用。 它包含了: 一個(gè)項(xiàng)目對象模型 (Proj...
    高公子Daniel閱讀 4,508評論 4 60
  • Maven編譯代碼的相關(guān)命令 第一、main目錄下的主代碼編寫完畢后,使用Maven進(jìn)行編譯,在項(xiàng)目根目錄下運(yùn)行命...
    加油小杜閱讀 1,443評論 0 2

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