标准目录布局简介
具有通用的目录布局将使熟悉一个Maven项目的用户立即在另一个Maven项目中感到宾至如归。优点类似于采用整个站点的外观。
下一节记录Maven期望的目录布局和Maven创建的目录布局。请尝试尽可能符合此结构;但是,如果您不能通过项目描述符覆盖这些设置。
src/main/java | 应用程序/库资源 |
src/main/resources | 应用/图书馆资源 |
src/main/filters | 资源过滤器文件 |
src/main/webapp | Web应用程序源 |
src/test/java | 测试来源 |
src/test/resources | 测试资源 |
src/test/filters | 测试资源过滤器文件 |
src/it | 集成测试(主要用于插件) |
src/assembly | 程序集描述符 |
src/site | 现场 |
LICENSE.txt | 项目许可证 |
NOTICE.txt | 项目所依赖的图书馆要求的注意事项和出处 |
README.txt | 项目的自述文件 |
在顶层,描述项目的pom.xml文件:文件。此外,还有意味着用户文本文档,以便能够在接收该电源立即读取:README.txt,LICENSE.txt,等。
该结构只有两个子目录:src和target。唯一的其他将被预期这里目录是元数据喜欢CVS,.git或.svn,和在多构建任何子项目(其中的每一个将被布置为上文)。
该target目录用于容纳构建的所有输出。
该src目录包含用于构建项目的所有源材料,其站点等。它包含每种类型的子目录:main用于主构建工件,test用于单元测试代码和资源,site等等。
在生成工件的源目录(即main和test)中,有一种语言目录java(在该目录下,存在正常的包层次结构),而有一个目录(在resources给定默认资源定义的情况下,该结构复制到目标类路径中)。
如果有其他有助于工件构建的源,它们将位于其他子目录下:例如,src/main/antlr将包含Antlr语法定义文件。
Maven这个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar 包。但是对于我们程序员来说,我们最关心的是它的项目构建功能。所以这里我们介绍的就是怎样用 maven来满足我们项目的日常需要。Maven 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构。
Maven 默认约定了一套目录结构,在通过 Maven 创建了项目以后,项目的目录结构就是以这套目录结构作为模板创建的。
目录 |
目的 |
---|---|
${basedir} |
项目根目录,存放 pom.xml 和所有子目录 |
${basedir}/src/main/java |
存放项目的 java 源代码 |
${basedir}/src/main/resources |
存放项目的资源配置文件 |
${basedir}/src/main/webapp |
如果是 web 项目,存放 web 资源 |
${basedir}/src/test/java |
存放测试类的源代码 |
${basedir}/src/test/resources |
存放测试需要的资源配置文件 |
${basedir}/target |
存放生成的字节码文件及打包生成文件等 |
参考案例:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html