Maven 座标概念与作用
| 座标的概念 | Maven 中的座标用于描述仓库中资源的位置 |
|---|---|
| 座标的作用 | 唯一标识 |
| Maven 座标的主要组成 | |
|---|---|
| groupld | 组织名 |
| artifactld | 项目名称 |
| version | 版本号 |
Maven 项目的 pom.xml 文件解析
<?xml version="1.0" encoding="UTF-8"?><projectxmlns="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><groupId>com.magebug</groupId><artifactId>maven</artifactId><version>1.0</version></project>
| 行数 | 说明 |
|---|---|
| 1 | xml 是一个语言,第1行是 .xml 文件的文件头 |
| 2 | </project> |
| 3-5 | 根元素,格式规定,不去管他是什么东西。 |
| 6 | Maven 的对象模型版本号 |
| 8 | 组织名 |
| 9 | 项目名 |
| 10 | 版本号 |
Maven 标签说明
| 标签名 | 说明 |
|---|---|
<dependencies> |
设置当前工程的所有依赖 |
<dependency> |
一个具体的依赖 |
<groupld> |
组织名 |
<artifactld> |
项目名称 |
<version> |
版本号 - snapshots:开发中的版本- release :比较稳定的发布版本 |
<optional> |
- true:隐藏本项目被依赖时所使用的依赖- false:默认显示 |
<exclusions> |
设置当前工程的所有排除依赖 |
<exclusion> |
一个具体的排除依赖 |
<scope> |
作用范围 - compole(默认):全有效- test:测试范围有效- provided:主代码和测试代码有效- runtime:打包时有效 |
Maven 聚合
1.聚合模块
项目构建和版本依赖全都由一个模块来管理。
- 定义聚合模块的打包方式为:
pom(一个提示:默认的打包方式是:jar) - 定义要管理的工程列表:
modules
<?xml version="1.0" encoding="UTF-8"?><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><groupId>com.magebug</groupId><artifactId>Maven</artifactId><version>1.0</version><!--定义该工程用于进行构建管理--><packaging>pom</packaging><!--管理的工程列表--><modules><!--具体工程的相对路径--><module>user-service</module><module>order-service</module><module>eureka-server</module><module>feign-api</module><module>gateway</module></modules></project>
2.模块继承
既然项目构建可以由一个模块来管理,那么我们可以引入父子的概念,由父工程管理所有的版本依赖。
- 在父工程中的
pom.xml文件内,定义所有要用到的依赖。 - 在子工程中使用父工程定义的依赖,即不在子工程的
pom.xml写版本号version,方便统一管理。<dependencyManagement><!--父工程管理的全部依赖--><dependencies><!--父工程管理的具体依赖--><dependency></dependency></dependencies></dependencyManagement>
<!--声明子工程的父工程信息--><parent><artifactId></artifactId><groupId></groupId><version></version></parent>
3.自定义属性和使用
<!--定义变量 提取变量用 ${key}} --><properties><key>value<key/><key>value<key/><key>value<key/></properties>
