javaweb项目目录结构

程序目录结构应遵从maven默认约定(即使采用ANT构建),以统一规范,简化构建配置。一个典型的JavaEE应用(对应公司某产品、或某个项目的程序),目录结构如下:
javaweb项目目录结构

大型项目应划分多个工程(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
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标签库定义文件存放目录