以下是mavaen推薦的項目目錄.
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── group
│ │ ├── controller
│ │ │ ├── HomeController.java
│ │ │ └── PersonController.java
│ │ ├── dao
│ │ │ └── PersonDao.java
│ │ └── model
│ │ └── Person.java
│ ├── resources
│ │ ├── db.properties
│ │ ├── log4j.xml
│ │ └── META-INF
│ │ └── persistence.xml
│ └── webapp
│ ├── index.html
│ ├── META-INF
│ │ ├── context.xml
│ │ └── MANIFEST.MF
│ ├── resources
│ │ └── css
│ │ └── screen.css
│ └── WEB-INF
│ ├── spring
│ │ ├── app
│ │ │ ├── controllers.xml
│ │ │ └── servlet-context.xml
│ │ ├── db.xml
│ │ └── root-context.xml
│ ├── views
│ │ ├── edit.jsp
│ │ ├── home.jsp
│ │ └── list.jsp
│ └── web.xml
└── test
├── java
│ └── group
│ ├── controller
│ │ ├── DataInitializer.java
│ │ ├── HomeControllerTest.java
│ │ └── PersonControllerTest.java
│ └── dao
│ └── PersonDaoTest.java
└── resources
├── db.properties
├── log4j.xml
├── test-context.xml
└── test-db.xml
Java web工程下的webapp或WebContent就是工程的發布文件夾,發布時會把該文件夾發布到tomcat的webapps里。
開發時classes文件存放路徑:
buildpath:在eclipse中項目的右鍵Java/build path-source中指定工程中class文件的編譯路徑,一般為:test/build/classes。(test是工程名)
發布時classes文件存放路徑:
發布到tomcat時(在eclipse里啟動tomcat),src文件夾里的java文件經過編譯后,會把.class文件放在WEB-INF文件夾里的classes文件夾中。
有一些配置文件需要放到WEB-INF的classes文件夾下,所以,通常的做法是手動在工程的WEB-INF文件夾下建立classes文件夾。如果不在工程的WEB-INF下手動建立classes,發布到tomcat時tomcat里的WEB-INF中也會有classes文件夾。
關於jar
【Web App Libraries】 一般是指向web工程的 WEB-INF/lib下的包(可以將包copy到此目錄下 然后刷新工程 加入的包一般可以自動找到 如果找不到 右鍵|Properties |Java Build Path|Libraries |Add JARs 可以加入)
build path中add jar可以引用工程文件夾以外的jar,如果引用了工程以外的jar,在.classpath文件中會添加(如java的jar包jre和tomcat的jar包):
<classpathentry kind="lib" path="D:/workspace/ojdbc14.jar"/>
web-info/lib中的jar不會往.classpath文件中會添加, 其余兩者沒有區別,編譯的時候先找classpath中的jar如果沒有則找web-info/lib中的jar。
開發環境中eclise會將工程打包放到tomcat下,進行關聯。
1.工程目錄:
2.發布后的tomcat目錄:
基於Java開發平台開發業務系統,建議使用maven作為構建工具,以方便不同組件和依賴包的管理。客戶現場開發的情況,訪問Maven倉庫確實困難的,可事先將依賴關系以Release的方式下載到一個集中的目錄,然后使用Ant對工程進行構建。
程序目錄結構應遵從maven默認約定(即使采用ANT構建),以統一規范,簡化構建配置。一個典型的JavaEE應用(對應公司某產品、或某個項目的程序),目錄結構如下:
大型項目應划分多個工程(project,模塊),每個工程的目錄結構也同樣遵從相同約定。
各目錄的內容/用途如下:
目錄 |
用途 |
src/main/java |
Application /Library 的java源代碼(再分package) |
src/main/flex |
增加:flex源碼,包含mxml定義、assets和as腳本 |
src/main/resources |
Application/Library 的資源文件,如多字符集boundle,位圖,配置文件等(單獨建立conf等子目錄) |
src/main/resources/conf |
增加:准備封到JAR包中的配置文件(默認包下conf/目錄) |
src/main/filters |
【暫不用】Resource filter files |
src/main/assembly |
【暫不用】Assembly descriptors |
src/main/config |
【暫不用】maven配置文件 |
src/main/webapps |
Web 應用的網頁,WEB-INF目錄等所在,詳見本表下方說明 |
|
|
src/test/java |
單元測試的源代碼 |
src/test/resources |
測試使用的資源文件,如集成測試腳本等 |
src/test/resources/conf |
增加:測試用例需要的配置文件 |
src/test/filters |
【暫不用】Test resource filter files |
src/site |
【暫不用】Site |
|
|
target |
maven編譯目錄,包含中間過程文件和最終的工件(如jar) |
|
|
pom.xml |
Maven工程的配置文件,以此控制maven構建行為 |
LICENSE.txt |
產品/本工程的版權信息文件 |
README.txt |
產品/本工程的說明文件 |
為規范war包結構,對src\main\webapp目錄做如下約定:
目錄 |
存放內容 |
css |
存放.css格式文件(可再分目錄) |
skins |
存放皮膚文件(按主題划分的framework的位圖) |
images |
存放圖片,按產品、功能模塊划分子目錄 |
js |
JavaScript文件(對象、函數庫) |
include |
存放被包含的JS文件片段【注:JSP文件互相不要包含,通過模板/組件/標簽庫/BEAN實現重用】 |
resources |
存放JSF組件、相關資源等 |
templates |
模板文件存放地,按類別划分子目錄 |
pages |
網頁目錄(靜態和動態網頁,除index.jsp),按產品、功能模塊划分子目錄 |
webapp下其他目錄 |
解釋為模塊名,認為其中全部為網頁,可再分子目錄 |
META-INF |
存放清單文件、services等配置信息 |
WEB-INF |
網站配置文件目錄,存放WEB.XML等配置信息 |
WEB-INF/classes |
未打包的項目編譯代碼,禁止手工修改。 |
WEB-INF/conf |
存放struts,spring,hibernate,JSF等的配置文件 |
WEB-INF/lib |
存放第三方JAR包,使用MAVEN構建時此目錄禁止手動放入文件! |
WEB-INF/pages |
高安全性的網頁目錄,如登錄信息維護等 |
WEB-INF/tld |
JSP標簽庫定義文件存放目錄 |
