javaweb项目目录结构
程序目录结构应遵从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 |
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标签库定义文件存放目录 |