标准目录布局简介

拥有一个通用的目录布局可以让熟悉一个 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.txtLICENSE.txt等。

这个结构只有两个子目录:srctarget. 此处预期的唯一其他目录是元数据,如CVS,.git.svn,以及多项目构建中的任何子项目(每个子项目都将如上所示)。

target目录用于存放构建的所有输出。

src目录包含用于构建项目、其站点等的所有源材料。它包含每种类型的子目录:main主要构建工件、test单元测试代码和资源site等。

在工件生成源目录(即maintest)中,有一个目录用于语言java(在其下存在正常的包层次结构),一个用于resources(在给定默认资源定义的情况下复制到目标类路径的结构)。

如果工件构建中有其他贡献源,它们将位于其他子目录下。例如src/main/antlr将包含 Antlr 语法定义文件。