1. 傳統(tǒng)的web工程目錄結(jié)構(gòu)
src目錄及config目錄(自定義的source folder目錄)下的文件都會(huì)被拷貝到WEB-INF\classes目錄中當(dāng)然java文件不會(huì)被拷貝,由對(duì)應(yīng)的class文件替換
WebRoot目錄下存放jsp文件
WEB-INF目錄下存放classes目錄(在開發(fā)工具中不顯示,實(shí)際存在莺奔,存放src中被編譯后的文件)副砍、lib目錄(存放工程依賴的jar包)柴淘、web.xml(web核心文件)
1.1. 導(dǎo)出的工程目錄結(jié)構(gòu)
這就是硬盤上該項(xiàng)目對(duì)應(yīng)的真實(shí)目錄結(jié)構(gòu)
這里的.classpath形耗、.project复凳、.tern-project甸昏、.settings目錄都是eclipse給我們生成的一些項(xiàng)目額外信息蛤迎,不做討論蜓陌,可以忽略觅彰,不會(huì)造成任何影響
- 首先會(huì)導(dǎo)出source folder目錄即config、src
- 然后會(huì)導(dǎo)出核心目錄WebRoot钮热,該目錄下包含jsp文件填抬、及WEB-INF目錄,而WEB-INF目錄下又包含核心文件web.xml隧期、classes目錄(開發(fā)者開發(fā)的類及資源配置文件)飒责、lib目錄(項(xiàng)目所依賴的jar包)
小節(jié):其實(shí)對(duì)比于IDE中的目錄結(jié)構(gòu)赘娄,硬盤上真實(shí)的目錄結(jié)構(gòu)只是多了一個(gè)classes目錄而已
1.2. 導(dǎo)出的war包目錄結(jié)構(gòu)
與導(dǎo)出的工程目錄結(jié)構(gòu)(項(xiàng)目真實(shí)的目錄結(jié)構(gòu))相比只是去掉了source folder(開發(fā)者源文件)而已
2. maven工程目錄結(jié)構(gòu)
如果是web項(xiàng)目,那么要在src\main目錄下新建webapp\WEB-INF目錄宏蛉,并且在WEB-INF目錄下新建一個(gè)web.xml文件
2.1. 導(dǎo)出的工程目錄結(jié)構(gòu)
傳統(tǒng)的web工程中的source folder通常為src遣臼,而maven工程為src\main\java、src\main\resources拾并、src\test\java暑诸、src\test\resources, 這樣在硬盤上會(huì)生成對(duì)應(yīng)的目錄結(jié)構(gòu)辟灰,但與傳統(tǒng)web工程具有同樣的一個(gè)特性即:會(huì)將source folder目錄下的"開發(fā)文件"會(huì)拷貝到classes目錄中个榕,這里將src\main\java看作一個(gè)source folder,只是名字取成這樣而已
通常來(lái)說classes目錄會(huì)存于WebRoot\WEB-INF\目錄下芥喇,但是maven工程將classes目錄從WEB-INF中遷移出來(lái)并存于target目錄下
真實(shí)結(jié)構(gòu)也不再有l(wèi)ib目錄西采,pom.xml文件即可完成項(xiàng)目依賴,換句話說可以實(shí)現(xiàn)開發(fā)了继控,只不過在打成war包時(shí)械馆,從本地倉(cāng)庫(kù)中找到需要的jar并拷貝到lib目錄中即可
2.2. 導(dǎo)出的war包目錄結(jié)構(gòu)
對(duì)于傳統(tǒng)的web工程生成的war包目錄結(jié)構(gòu)而言,只是在META-INF\目錄下多了一個(gè)maven目錄而已武通,該目錄下的文件夾命名為groupID\ArtifactId霹崎,pom.properties描述的是項(xiàng)目的GAV信息,pom.xml就沒啥好說的
總體而言冶忱,maven生成的war包目錄結(jié)構(gòu)與傳統(tǒng)的一致尾菇,顯然是為了兼容性
3. 總結(jié)
- maven工程與傳統(tǒng)工程目錄結(jié)構(gòu)差異
- 傳統(tǒng)工程WebRoot在工程當(dāng)前目錄下,而maven在src\main目錄下
- 傳統(tǒng)classes目錄存于WebRoot\WEB-INF目錄下囚枪,maven存于target目錄下
- 傳統(tǒng)的jar包存在于WEB-INF\lib目錄下派诬,而maven用pom.xml來(lái)代替,在項(xiàng)目導(dǎo)出的時(shí)候減少容量
- 傳統(tǒng)的source folder為一級(jí)即src链沼,而maven是多級(jí)默赂,造成真實(shí)目錄結(jié)構(gòu)有出入,但拷貝"開發(fā)文件"(即開發(fā)者開發(fā)的class文件與資源文件)到classes目錄下的特性不變
- maven工程與傳統(tǒng)工程相同點(diǎn)
- 生成的war包目錄結(jié)構(gòu)基本一致