Maven 座标概念与作用
座标的概念 | Maven 中的座标用于描述仓库中资源的位置 |
---|---|
座标的作用 | 唯一标识 |
Maven 座标的主要组成 | |
---|---|
groupld | 组织名 |
artifactld | 项目名称 |
version | 版本号 |
Maven 项目的 pom.xml 文件解析
<?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>
</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>