Maven特点
• 项目设置遵循统一的规则。
• 任意工程中共享。
• 依赖管理包括自动更新。
• 一个庞大且不断增长的库。
• 可扩展,能够轻松编写 Java 或脚本语言的插件。
• 只需很少或不需要额外配置即可即时访问新功能。
POM基本定义
POM:项目对象模型,Maven基本工作单元,xml文件格式,描述项目构建,项目依赖,当计算机执行任务或者目标时,Maven查找Pom,获取所需配置信息。
POM指定的配置包含:项目依赖,插件,执行目标,项目构建profile,项目版本等
POM文件需要project元素和三个必须字段:groupid(项目组),artifactid(工程标识,一般时工程的名称),version(版本号)
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0</version>
</project>
super POM
所有的POM继承自父POM(super),当Maven需要下载依赖时,会从super POM 中配置的默认仓库http://repo1.maven.org/maven2下载默认仓库不过一般还是更换为国内镜像源,比如阿里镜像地址.找到Maven文件中conf下setting xml中找到mirror,修改为
-<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
Maven 使用 effective pom(Super pom 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置,当然这些配置可以被重写。我们在控制台中进入相应文件目录,执行mvn help:effective-pom
将super pom 中内容通过继承,插值将其显示在Pom中,使得配置生效。
POM常用标签
version: 定义项目版本
dependencies 配置所有依赖信息
dependency配置单个依赖
关系:
<dependencies>
<dependency>
.......
</dependency>
</dependencies>
properties 自定义标签:
packaging标签:创建父工程时必须使用
modules 与module标签:
模块,在父项目中添加子项目
使用关系同dependencies 与dependency一致
推荐参考菜鸟教程POM