Having a common directory layout would allow for users familiar with one Maven project to immediately feel at home in another Maven project. 具有通用的目录布局,使熟悉一个Maven项目的用户立即在另一个Maven项目中感到宾至如归。 —— Apache Maven
Maven的原则是“约定大于配置”,maven项目通常需要遵守统一的文件目录结构约定,现在对maven文件目录结构进行简单的说明。
如果不了解Maven是什么,不清楚为什么用Maven。可以先阅读一下这篇博文 Maven篇:聊聊为什么用和怎么理解。
下面,给出maven项目的文件目录约定,或者称之为Standard Directory Layout,标准目录布局。
在目录顶层,包括两个文件夹src
和target
,以及pom.xml
文件和.git
文件。
src
中包含构建项目的所有文件,包括源代码和资源;target
文件夹用来存放项目编译build之后的结果,包括编译后产生的jar包、war包、编译的class文件等;pom.xml
是POM配置文件;.git
是git仓库的文件。
在src
目录下,主要分为两个文件夹main
和test
,这两个文件夹中的内容基本相似。均有java
、resources
、filters
。其中,java存放代码,resources存资源文件,filters存资源过滤文件。但是:
main
文件夹中是项目的主代码及资源,项目中业务开发、逻辑实现都是在该文件夹中;test
文件存放用于测试的文件,用测试的代码和资源。
在main
目录下,还包括webapp
目录,它是web应用源代码所在的目录,例如Web-INF、html文件和web.xml等都在该目录下,同时通常还包含js、images、css等子目录。
除此以外,在src
目录下还包括一些不常用的目录:站点文件site、组件(Assembly)描述符所在的目录assembly、集成测试代码所在的目录it。
最后贴出官网的目录结构图,可以结合着看。
参考文章:
[1] Standard Directory Layout by Apache Maven Project,http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html