Java Web 项目目录规范
一、项目结构
这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解:
解释一下:js主要包括extends(引入第三方的js)、module(项目模块自己的js)、lib(引用包,这里也可以继续拆分),module中包含具体的模块中的js。common.js是核心命名空间的js.
二、common.js
解释一下,Globals作为全局命名空间,各个模块均可以在此命名空间里定义域(如果有不明白的可以自学下命名空间,这个文件写死就行,也不用具体理解)。
华东web项目工程规范
基于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标签库定义文件存放目录 |