章节
- Maven – 简介
- Maven – 工作原理
- Maven – Repository(存储库)
- Maven – pom.xml 文件
- Maven – 依赖管理
- Maven – 构建生命周期、阶段、目标
- Maven – profile
- Maven – 插件
- Maven – web 实例
- Maven – Eclipse例子
POM是Project Object Model/项目对象模型的缩写。pom.xml文件中包含了依赖关系、构建目录、源目录、测试源目录、插件、目标等项目信息和配置信息。Maven读取pom.xml文件,然后执行构建目标。
pom.xml文件的基本元素
一个pom.xml文件至少需要包含以下元素:
![f5d83ae1a1eec22e169be176fd4a0cfe.png](https://i-blog.csdnimg.cn/blog_migrate/7596a540aa93985950fe02fbc295e9fc.jpeg)
pom.xml示例:
<project
pom.xml文件的常用元素
除了基本元素,下面是pom文件的一些常用元素:
![0603fc921acbe59db13feead860e6acd.png](https://i-blog.csdnimg.cn/blog_migrate/3255b576cda3815d66c9e05302644a67.jpeg)
pom.xml
<project
pom 继承
所有Maven POM文件都继承自一个父POM。如果没有指定,则POM文件默认继承自基本POM (base POM)。如下图所示:
![b73d89ec719669a8996c028b943f6c4b.png](https://i-blog.csdnimg.cn/blog_migrate/1d9dba0778d2275c12da208a564bbba1.jpeg)
可以使POM文件显式地继承另一个POM文件,如下所示:
<project
子POM文件可以覆盖父POM文件的设置。
生效 pom
使用pom继承时,很难清楚知道最终的生效pom是怎么样的,可以通过以下命令展示最终生效的pom内容:
mvn help:effective-pom
Maven项目的目录结构
Maven项目有标准的目录结构。如果遵循该目录结构,就不需要在POM文件中指定源代码、测试代码等目录。
如需详细了解,可参考官方文档。
下面介绍几个最重要的目录:
- src
- main
- java
- resources
- test
- java
- resources
- target
- src目录是源代码和测试代码的根目录,main目录是项目源代码(不含测试目录)的根目录,test目录包含测试源代码。
- resources目录是资源目录。
- 如果项目是web应用程序,则webapp目录包含Java web应用程序。webapp目录将成为web应用程序的根目录,包含WEB-INF目录等。
- 目标目录由Maven创建,包含Maven生成的所有已编译类、JAR文件等。在执行clean构建阶段时,目标目录会被清除。