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

这篇具有很好参考价值的文章主要介绍了Maven工程 — 继承与聚合 相关知识点详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

目录

1、继承

1.1 继承关系的实现

1.2 版本锁定

2、聚合

2.1 聚合方法

3、总结

3.1 作用与联系

4、私服

4.1 私服介绍

4.2 资源上传与下载


1、继承

图 1-1 继承的概念 
Maven工程 — 继承与聚合 相关知识点详解,JAVA语言,maven,java,开发语言
        在Maven工程中的继承关系中,与Java语言的继承是相似的,子工程继承父工程后,就可以调用父工程的资源。

1.1 继承关系的实现

图 1.1-1 继承关系实现
Maven工程 — 继承与聚合 相关知识点详解,JAVA语言,maven,java,开发语言

1.2 版本锁定

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

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

2、聚合

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

2.1 聚合方法

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

3、总结

3.1 作用与联系

图 3-1 继承与聚合总结
Maven工程 — 继承与聚合 相关知识点详解,JAVA语言,maven,java,开发语言

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

4、私服

4.1 私服介绍

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

依赖查找顺序:

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

4.2 资源上传与下载

图 4.2-1 资源上传与下载
Maven工程 — 继承与聚合 相关知识点详解,JAVA语言,maven,java,开发语言

资源上传:在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 

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

注意:上图中的私服账号、密码和私服地址是根据开发者所在公司的信息做出修改文章来源地址https://www.toymoban.com/news/detail-822146.html

到了这里,关于Maven工程 — 继承与聚合 相关知识点详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven工程继承和聚合关系

    Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。 在父工程中统一管理项目中的依赖信息。 它的背景是: 对一个比较大型的项目进行了模块拆分。 一个 project 下

    2024年01月23日
    浏览(43)
  • Maven工程开发中的继承与聚合

    设置一个空的maven工程,工程里面只有pom文件,另外将这个工程的打包方式设置为pom。 在聚合工程里面添加聚合工程里面管理的模块 例如下面02工程继承上面的01工程,在02工程的pom文件中要配置要继承的父工程的依赖,并添加上相对路径。 此时,2、3、4中所用公共依赖的模

    2024年02月16日
    浏览(43)
  • 新年快乐!学习Java第84天,Maven工程继承和聚合关系

    1. Maven工程继承关系 继承概念 Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。 继承作用 在父工程中统一管理项目中的依赖信息。 它的背景是: 对一个比较大型

    2024年02月03日
    浏览(38)
  • 【字节面试】Fail-fast知识点相关知识点

    字节面试,问到的一个小知识点,这里做一下总结,其实小编之前有一篇文章,已经对此有过涉及,不过这里知识专项针对于问题,把这个知识点拎出来说一下。 什么是Fail-fast机制? Hashmap是否拥有Fail-fast机制? ConcurrentModificationException异常原因和解决方法是什么? 哪些你常

    2024年01月22日
    浏览(49)
  • SpringMVC相关知识点

    传统开发中的控制层: 接收请求参数 request.getParameter 封装实体 new 实体类调用其set方法 访问业务层 接收访问结果 指派页面 通过request和response对象进行页面跳转 将共有行为进行抽取成DispatcherServlet【SpringMVC内部集成】,通过Spring-MVC.xml配置文件去配置。 Spring: 获取请求参数

    2024年02月16日
    浏览(48)
  • DAC相关知识点

    1.回放数据64bit的数据来源有两个地方: A——ROM波形数据表(数据来源可由dds产生或者matlab产生,本实际项目选择由dds产生的数据:通过写地址出来相应频率的波形)。 B——预留的接口给客户用来回访他们的I/Q数据 (64bit数据一般是4组16bit的IQ拼接的{i0,q0,i1,q1})。 2.6

    2024年02月12日
    浏览(45)
  • Hadoop相关知识点

    开启防火墙 sudo ufw enable 关闭防火墙 sudo ufw disable 查看防火墙状态 sudo ufw status 修改主机名 sudo vi /etc/hostname 修改映射 sudo vi /etc/hosts (考题) 建立文件夹 mkdir 文件夹名字 删除文件夹 rm -rf 递归删除文件夹向下穿透,其下所有文件、文件夹都会被删除 rm -f 强制删除文件 rm -r 递归

    2024年02月06日
    浏览(39)
  • java相关知识点

    1.String和StringBuffer如何互相转化 StringBuffer buffer = new StringBuffer(string); String string = buffer.toString();  2.如何实现两个数组内容的拷贝  3.如何去除字符串首尾空格 str.trim()  4.字符串和字符数组如何相互转换 字符串转字符数组:str.toCharArray(); 字符数组转字符串:strs.valueOf(char[] ch)  

    2023年04月23日
    浏览(45)
  • http相关知识点

    一张网页实际上可能会有多种元素组成,这也就说明了网页需要多次的http请求。 可由于http是基于TCP的,而TCP创建链接是有代价的,因此频繁的创建链接会导致效率降低 为了防止这种情况,就需要两端主机都具备支持长连接的功能,将大份的资源使用一条链接就包含,也就是

    2024年02月13日
    浏览(43)
  • Redis相关知识点

    Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库,它支持网络,可基于内存亦可持久化,并提供多种语言的API。Redis具有高效性、原子性、支持多种数据结构、持久化、高并发读写等特点。 特征: 1.数据间没有必然的关联关系 2.内部采用

    2024年01月23日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包