JavaWeb学习路线(11)—— Maven延伸

一、分模块设计

(一)概念: 将项目按功能拆分出若干个子模块。

(二)作用: 方便项目管理维护、扩展,也方便模块间相互调用,资源共享。

(三)具体实现

1、抽取公共包作成模块(以pojo实体类为例)
在这里插入图片描述
2、向使用的项目添加依赖
在这里插入图片描述
3、向使用类中引用
在这里插入图片描述
(四)注意事项

  • 分模块设计需要先针对模块设计,再进行编码。

二、继承与聚合

(一)继承

1、概念: 继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息, 常见于依赖关系的继承。

2、作用: 简化依赖配置、统一管理依赖

3、实现方式: <parent> … </parent>

  • 设置父工程模块,通常设置打包方式为pom(默认jar包)
    • jar: 普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
    • war: 普通web程序打包,需要部署在外部的tomcat服务器中运行
    • pom: 父工程或聚合工程,该模块不写代码,仅依赖管理
<!--引入父工程-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifacId><version>2.7.5</version><relativePath/> <!--从本地仓库查询-->
</parent><!--配置当前工程-->
<groupId>com.zengoo</groupId>
<artifactId>xxx-parent</artifacId>
<version>1.0-SNAPSHOT</version>
<pcakaging>pom</packaging>
  • 子工程的pom.xml文件中,配置继承关系
<parent><groupId>com.zengoo</groupId><artifactId>xxx-parent</artifacId><version>1.0-SNAPSHOT</version><!--配置引入目标工程的pom包--><relativePath>../zengoo-parent/pom.xml</relativePath>
</parent>
  • 父工程中配置各个工程共有的依赖(子工程会自动继承父工程的依赖)

4、版本锁定

(1)作用: 对依赖进行版本管理。
(2)原始实现方式: 在父工程的pom.xml中通过<dependencyManagement>来统一管理依赖版本

<!--父工程配置版本-->
<dependencyManagement><dependencies><dependency><groupId>xxx</groupId><artifactId>xxx</artifactId><version>x.x.x</version></dependency></dependencies>
</dependencyManagement>
<!--子工程引入依赖-->
<dependencies><dependency><groupId>xxx</groupId><artifactId>xxx</artifactId></dependency>
</dependencies>

(3)优化使用:自定义属性列表

配置文件application.properties

<properties><lombok.version>1.18.24</lombok.version><jjwt.version>0.9.1</jjwt.version>
</properties>

父工程pom文件

<dependencyManagement><dependencies><dependency><groupId>xxx</groupId><artifactId>xxx</artifactId><version>${jjwt.version}</version></dependency></dependencies>
</dependencyManagement>

子工程pom文件

<dependencies><dependency><groupId>xxx</groupId><artifactId>xxx</artifactId><version>${jjwt.version}</version></dependency>
</dependencies>

(二)聚合

1、作用: 将多个模块组合成一个整体,同时进行项目构建。(快速构建项目)

2、实现:

父工程(聚合工程)pom.xml

<moudles><moudle>../xxx</moudle><moudle>../xxx</moudle><moudle>../xxx</moudle><moudle>../xxx</moudle>
</moudles>

(三)继承与聚合的总结

  • 作用:
    • 聚合用于快速构建项目
    • 继承用于简化依赖配置、统一管理依赖
  • 相同点:
    • 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系只做到同一个pom文件中
    • 聚合与继承均属于设计型模块,并无实际模块内容
  • 不同点:
    • 聚合是在聚合工程中配置关系,聚合可以预设模块进行
    • 继承是在子模块中配置关系,父模块无法预设子模块继承

三、私服(Maven共享)

(一)概念: 私服是一种特殊的远程仓库,用来代理外部的中央仓库,用于解决团队内部资源共享与资源同步问题。

(二)使用私服

  • 步骤一:Maven的setting.xml中配置账户与密码
<server><id>maven-releases</id> #发行版本仓库<username>admin</username><password>admin</password>
</server><server><id>maven-snapshot</id> #快照版本仓库<username>admin</username><password>admin</password>
</server>
  • 步骤二:pom文件中配置上传地址
<distributionManagement><repository><id>maven-releases</id><url>正式版本仓库仓库访问路径</url></repository><repository><id>maven-snapshot</id><url>快照版本仓库访问路径</url></repository>
</distributionManagement>
  • 步骤三:设置私服依赖下载的仓库组地址(settings.xml)
<mirror><id>maven-public</id><mirrorOf>*</mirrorOf><url>仓库组访问路径</url>
</mirror>
  • 步骤四:私服settings.xml中的profile属性下配置
<profile><id>allow-snapshots</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><url>仓库组访问路径</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</profile>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14706.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运维开发面试题第一期

1.tail -f和tail -F的区别是什么? tail -f 根据文件描述符进行追踪&#xff0c;当文件改名或被删除&#xff0c;追踪停止。 tail -F 根据文件名进行追踪&#xff0c;并保持重试&#xff0c;即该文件被删除或改名后&#xff0c;如果再次创建相同的文件名&#xff0c;会继续…

es8.8 集群安装笔记

es8.8 集群安装笔记 配置集群第一步 修改配置文件 本次安装使用centos8 3节点安装&#xff1a; 192.168.182.142 192.168.182.143 192.168.182.144 官网 可以查看详细的安装&#xff0c;安装步骤比较简单 https://www.elastic.co/guide/en/elasticsearch/reference/8.8/rpm.htm…

MySQL练习题(3)

创建数据库插入数据 CREATE TABLE emp ( empno int(4) NOT NULL, ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, mgr int(4) NULL DEFAULT N…

win11病毒和防护功能显示‘页面不可用’的解决方法

问题如上图所示&#xff0c;试了很多种方法&#xff0c;有一种是可以用的&#xff0c;记录一下。 步骤&#xff1a; 1、搜索框输入cmd&#xff0c;以管理员身份运行命令提示符 2、输入 第一条代码 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows D…

Django_re_path_使用正则匹配url

与path定义的路由相比&#xff0c;re_path 定义的路由可以使用正则表达式匹配url。 需要注意的是&#xff1a; 如果未定义匹配结果的变量名&#xff0c;匹配的结果默认传入视图的第2个形参。如果定义了匹配结果的变量名&#xff0c;匹配的结果会传给视图的同名字段&#xff0…

vscode安装+配置+使用+调试【保姆级教程】

1. VScode是什么 Visual Studio Code简称VS Code&#xff0c;是一款跨平台的、免费且开源的现代轻量级代码编辑器&#xff0c;支持几乎主流开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段提示、代码对比等特性&#xff0c;也拥有对git的开箱即…

Linux 多线程

线程概念 我们都知道&#xff0c;当一个程序运行起来的时候&#xff0c;系统会进行一系列操作&#xff0c;比如创建一个task_struct 结构体对象&#xff0c; 然后创建一块虚拟地址空间&#xff0c;在内存中开辟一块空间&#xff0c;并且用页表将虚拟地址空间映射到内存上去。 那…

电视访问Samba

文章目录 问题描述方案一&#xff1a;当贝播放器方案二&#xff1a;nPlayer方案三&#xff1a;Kodi 问题描述 本人使用小米 AX9000 路由器 移动硬盘组了个轻 NAS&#xff0c;想通过电视访问 Samba 看视频&#xff08;也可以电脑开 SMB&#xff09; 开启 Samba 功能 文件夹开…

软件分享:Cpu-Z电脑CPU检测工具介绍(附下载)

目录 一、软件介绍 二、功能介绍 三、使用方法 1、通过 CPU-Z 查看 CPU 信息 2、缓存信息 3、主板信息 4、内存信息 5、内存规格信息&#xff08;SPD&#xff09; CPU是计算机中负责读取指令&#xff0c;对指令译码&#xff0c;并执行指令的核心部件。CPU自产生以来&am…

机器学习与深度学习——自定义函数进行线性回归模型

机器学习与深度学习——自定义函数进行线性回归模型 目的与要求 1、通过自定义函数进行线性回归模型对boston数据集前两个维度的数据进行模型训练并画出SSE和Epoch曲线图&#xff0c;画出真实值和预测值的散点图&#xff0c;最后进行二维和三维度可视化展示数据区域。 2、通过…

Stable Diffusion 图片生成AI模型 Windows Mac部署指南

Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像&#xff0c;它也可以应用于其他任务&#xff0c;如内补绘制、外补绘制&#xff0c;以及在提示词​&#xff08;英语&#xff09;指导下产生图生图的翻译。 DreamStudio 现已…

第163天:应急响应-后门攻击检测指南Rookit内存马权限维持WINLinux

知识点 #知识点 -网页篡改与后门攻击防范应对指南 主要需了解&#xff1a;异常特征&#xff0c;处置流程&#xff0c;分析报告等 主要需了解&#xff1a;日志存储&#xff0c;Webshell检测&#xff0c;分析思路等 掌握&#xff1a; 中间件日志存储&#xff0c;日志格式内容介绍…