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)的處理,代碼是變化的,我相信原理不變