Maven工程 — 继承与聚合 相关知识点详解

本文详细介绍了Maven工程中的继承机制,如何通过子工程继承父工程并管理版本,以及聚合模块的概念和实现方法。同时,还涵盖了私服的介绍、配置和资源管理,包括依赖查找顺序和项目部署过程。
摘要由CSDN通过智能技术生成

 简介:这篇帖子主要讲解Maven工程中的继承与聚合的相关知识点,用简洁的语言和小编自己的理解,深入浅出的说明Maven工程的继承与聚合。

目录

1、继承

1.1 继承关系的实现

1.2 版本锁定

2、聚合

2.1 聚合方法

3、总结

3.1 作用与联系

4、私服

4.1 私服介绍

4.2 资源上传与下载


1、继承

图 1-1 继承的概念 
        在Maven工程中的继承关系中,与Java语言的继承是相似的,子工程继承父工程后,就可以调用父工程的资源。

1.1 继承关系的实现

图 1.1-1 继承关系实现

1.2 版本锁定

图 1.2-1 版本锁定详解
图中说明了,在父工程pom.xml文件中通过 <dependencyManagement> 标签进行依赖管理,在规定了相应依赖的版本后,子项目只需要pom.xml文件引入相应依赖坐标无需添加版本信息。
图 1.2-2 依赖引入
在上图中,父工程引入依赖在 <dependencyManagement> 标签中,子工程只需要在 <dependency> 标签中添加相对应的标签,无需指定版本;如果之后需要变更某个引入依赖的版本号,只需要修改父工程对应依赖版本号就好。
图 1.2-3 自定义属性/引用属性

在上图中,将父工程的 <dependencyManagement> 标签中的所有的 <version> 版本号集中定义在<properties> 标签中,这样在日后的维护时只需要在 <properties>  标签中修改就好。

2、聚合

  • 聚合:将多个模块组织成一个整体,同时进行项目的构建。
  • 聚合工程:一个不具有业务功能的“空”工程(只有一个pom.xml文件)
  • 作用:快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)

2.1 聚合方法

  • maven中可以通过 <modules> 设置当前聚合工程所包含的子模块名称
  • 聚合工程中所包含的模块,在构建时,会自动根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关
图 2.1-1 聚合父工程
上图中,只需要在箭头指定处添加模块地址和模块名,就可以将对应的模块添加到父工程中。

3、总结

3.1 作用与联系

图 3-1 继承与聚合总结

上图中,说明了继承与聚合之间的联系、各自的作用。

4、私服

4.1 私服介绍

私服是一种很特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享一资源同步问题。

依赖查找顺序:

  • 本地仓库
  • 私服
  • 中央仓库

4.2 资源上传与下载

图 4.2-1 资源上传与下载

资源上传:在IDEA中配置url地址,在Maven本地仓库配置私服的用户名/密码,执行deploy命令。

资源下载:在Maven本地仓库配置私服的url地址。

图 4.2-2 私服配置说明

## 私服配置说明

访问私服:http://192.168.150.101:8081

访问密码:admin/admin

使用私服,需要在maven的settings.xml配置文件中,做如下配置:

1. 需要在 **servers** 标签中,配置访问私服的个人凭证(访问的用户名和密码)

   ```xml
   <server>
       <id>maven-releases</id>
       <username>admin</username>
       <password>admin</password>
   </server>
       
   <server>
       <id>maven-snapshots</id>
       <username>admin</username>
       <password>admin</password>
   </server>
   ```

   

2. 在 **mirrors** 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)

   ```xml
   <mirror>
       <id>maven-public</id>
       <mirrorOf>*</mirrorOf>
       <url>http://192.168.150.101:8081/repository/maven-public/</url>
   </mirror>
   ```

   

3.  需要在 **profiles** 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用

   ```xml
   <profile>
       <id>allow-snapshots</id>
           <activation>
               <activeByDefault>true</activeByDefault>
           </activation>
       <repositories>
           <repository>
               <id>maven-public</id>
               <url>http://192.168.150.101:8081/repository/maven-public/</url>
               <releases>
                   <enabled>true</enabled>
               </releases>
               <snapshots>
                   <enabled>true</enabled>
               </snapshots>
           </repository>
       </repositories>
   </profile>
   ```

   

4. 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)

   ```xml
   <distributionManagement>
       <!-- release版本的发布地址 -->
       <repository>
           <id>maven-releases</id>
           <url>http://192.168.150.101:8081/repository/maven-releases/</url>
       </repository>
       
       <!-- snapshot版本的发布地址 -->
       <snapshotRepository>
           <id>maven-snapshots</id>
           <url>http://192.168.150.101:8081/repository/maven-snapshots/</url>
       </snapshotRepository>
   </distributionManagement>
   ```

   

5. 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)

​        

## 启动本地私服

1. 解压: apache-maven-nexus.zip

2. 进入目录: apache-maven-nexus\nexus-3.39.0-01\bin

3. 启动服务:双击 start.bat 
4. 访问服务:localhost:8081
5. 私服配置说明:将上述配置私服信息的 192.168.150.101 改为 localhost 

上图是私服的连接配置相关信息,只需要按照所展示的步骤配置就可以。

注意:上图中的私服账号、密码和私服地址是根据开发者所在公司的信息做出修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值