2 高级
约 1145 字大约 4 分钟
2025-06-18
将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。
继承
概念:继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承。
作用:简化依赖配置、统一管理依赖 在子工程的pom文件中使用<parent>标签引入父工程的坐标 父工程的打包方式也要选择为pom,需要在maven的配置文件中使用<packing>标签设置为pom打包方式
父标签中的<relativePath>标签表明父工程的路径,如果是自己创建的工程需要使用这个标签手动指明父工程pom.xml的相对路径 如果不写默认是先在本地仓库查找,如果没有再去远程仓库查找,远程仓库有就下载到本地仓库
假设当前工程和父工程在同一文件夹下
<relativePath>../tlias-parent/pom.xml</relativePath>
需要先往上一级找到父工程与当前工程所在文件夹,接着进入父工程找到父工程的pom文件
打包方式
- jar:普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
- war:普通web程序打包,需要部署在外部的tomcat服务器中运行
- pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理
如果父工程和子工程配置了不同版本的相同依赖那么以子工程为准
版本锁定
在maven中,可以在父工程的pom文件中通过<dependencyManagement>来统一管理依赖版本。 子工程引l入依赖时,无需指定<version>版本号,父工程统一管理。变更依赖版本,只需在父工程中统一变更。
自定义属性/引用属性
可以在properties标签中同一管理依赖的版本,在引入依赖时使用这里的属性
<properties>
<lombok.version>1.18.24</lombok.version>
<jjwt.version>0.9.0</jjwt.version>
</properties>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
聚合
当完成好工程后需要将工程安装到本地仓库可以使用maven命令安装,但如果工程较多需要一个个安装且安装时如果一个子工程依赖的父工程没有安装就会报错,只有等父工程安装后子工程才能正常安装
聚合就是将多个模块组织成一个整体同时进行项目的构建
聚合工程 一个不具有业务功能的“空”工程(有且仅有一个pom文件)
通常来说一个父工程也是一个聚合工程,因为父工程不具备业务功能只是管理依赖
作用 : 快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)
maven中可以通过<modules>设置当前聚合工程所包含的子模块名称
<modules>
<module>../tlias-pojo</module>
<module>../tlias-utils</module>
<module>../tlias-web-management</module>
</modules>
聚合工程执行什么maven命令与其聚合的模块也会执行
私服
一般来说私服有三个仓库:
- CENTER(中央) : 里面存放着从中央仓库拉取的模块
- RELEASE(发行版本):功能趋于稳定、当前更新停止,可以用于发行的版本,存储在私服中的RELEASE仓库中。
- SNAPSHOT(快照版本):功能不稳定、尚处于开发中的版本,即快照版本,存储在私服的SNAPSHOT仓库中。
当创建maven工程时pom文件中会有一个描述当前工程版本的标签version标签如果版本号带有SNAPSHOT就会存放在SNAPSHOT仓库中,如果没有SNAPSHOT字段就会存放在RELEASE仓库中
设置私服的访问用户名/密码(settings.xml中的servers中配置)
<--!release仓库用户名和密码-->
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin</password>
</server>
<--!snapshots用户名和密码-->
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
自己创建maven工程的pom文件中配置上传(发布)地址
<distributionManagement>
<--!release版本-->
<repository>
<id>maven-releases</id>
<ur1>http://192.168.150.101:8081/repository/maven-releases/</url>
</repository>
<--!release版本-->
<snapshotRepository>
<id>maven-snapshots</id>
<ur1>http://192.168.150.101:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
设置私服依赖下载的仓库组地址(settings.xml中的mirrors、profiles中配置)
<mirror>
<id>maven-public</id>
<mirrorof>*</mirrorof>
<url>http://192.168.150.101:8081/repository/maven-pub1ic/</url>
</mirror>
贡献者
版权所有
版权归属:PinkDopeyBug