(javaweb)maven高级

目录

​编辑

1.分模块设计与开发

2.继承与聚合--继承关系实现

3.继承与聚合--版本锁定

4.继承与聚合--聚合版本

5.私服

资源的上传与下载 


1.分模块设计与开发

分模块:拆分成多个模块进行开发

不分模块:业务代码堆积成一个 不利于项目管理和维护并且难以复用

解决:分模块设计  模块独立  

各模块之间可以互相引用:引入他的坐标

pojo中:分页结果的封装类pagebean统一响应结果result 还有一些实体类

如果要复用当前项目的实体类 工具类---创建maven的模块   引入对应的依赖即可

2.继承与聚合--继承关系实现

在maven中,工程与工程之间也可以实现继承关系

解决这个问题:创建父工程:parent  模块继承该父工程  下面的工程为子工程

共有的写在父工程当中

只要子工程继承了父工程,依赖也会继承下来

若为父工程,其打包方式要设置为pom  模块默认打包方式为jar包

有三种打包方式

springboot项目运行在内部的Tomcat服务器当中

早期基于servlet开发的web程序以及基于原始的spring mvc所开的web应用程序---打包方式都是war包

打包成war包没法通过java指令运行  必须要部署在外部的Tomcat服务器中运行

pom的打包方式常见于继承关系中的父工程

所有的springboot项目都有一个统一的父工程

在maven中 一个子工程只能继承一个父工程(只能单继承)不能多继承 但可以多重继承

父工程中--不会写任何的java代码

父子工程都放在同一个目录下,属于是平级的关系     第二种工程结构更加清楚

3.继承与聚合--版本锁定

 模块拆分的越多,依赖的版本号越不好管理-----maven中:版本锁定

dependencyManagement--仅仅起到统一管理依赖版本的作用,并不会直接依赖  要想使用必须引入相应的依赖坐标,只不过不用再指定version了

自定义属性集中维护版本

4.继承与聚合--聚合版本

parent既是一个父工程,又是一个聚合工程

5.私服

 同一个公司两个项目组之间基于私服进行资源的共享   各自都有maven的本地仓库

中央仓库:全球只有一个 不能上传自己的jar  如何解决团队内部资源共享的问题????

私服!!!!(架设在公司局域网内部的一台服务器 是一种特殊的远程仓库) 各个团队可以连接私服

A连接到私服将jar包上传到私服  然后A与B连接同一台私服 然后B根据坐标找到私服中的jar包 下载到自己的本地仓库

此时 通过私服完成了团队内部资源的共享

若要使用mybatis最新的依赖 私服需要自动连接中央仓库,从中央仓库把需要的jar包下载下来 存放在私服的仓库当中

项目组先从本地仓库中找--若没有就去私服中去找--私服也没有就去中央仓库去找

资源的上传与下载 

这里所说的资源就是依赖jar包

上传到私服--首先需要安装到本地仓库 再将本地仓库上传到私服当中(此时执行的maven指令叫deploy--发布 是maven的生命周期)

默认是release版本

//上传到私服

 

 

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

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

相关文章

Apache PDFBox

文章目录 一、关于 Apache PDFBox二进制下载构建贡献支持已知限制和问题许可证(另见[LICENSE. txt](https://github.com/apache/pdfbox/blob/trunk/LICENSE.txt))出口管制 二、依赖1、核心组件最低要求字体处理XMP元数据使用Maven包含依赖项 2、可选组件…

密码生成器(HTML+CSS+JavaScript)

🌏个人博客主页:心.c ​ 前言:前两天写了密码生成器,现在跟大家分享一下,大家如果想使用随便拿,如果哪里有问题还请大佬们给我指出,感谢支持 🔥🔥🔥专题文章&…

MySQL 的半同步模式

目录 1 半同步简介: 解决主从数据一致性问题 2 实现半同步模式实践操作 2.1 MASTER 2.2 SLAVE 1 2.3 SLAVE 2 2.4 查看client链接状态 2.5 SLAVE 服务器故障模拟 2.5.1 停止 SLAVE 的 IO_THREAD 2.5.2 查看SLAVE 的IO线程是否关闭 2.5.3 查看 MASTER 上 client 的连接状态…

在树莓派5上使用pytroch进行模型训练—全流程笔记

在树莓派上运行pytroch模型🚀 在完成了树莓派的一系列基础配置学习之后,按照规划,下一步要做的就是在树莓派上安装一个pytorch,尝试运行一下深度学习的模型,如果可以实现且准速度有一定保证的话,就可以作为…

使用Qt+Visual Stuidio写一个简单的音乐播放器(1)

1.使用QMediaPlayer播放音乐 第三步:在代码头部加上: #include <QtMultimedia/QMediaPlayer> // VS向.pro文件添加代码的方式 #pragma execution_character_set("utf-8") // qt支持显示中文 QMediaPlayer类是一个高级媒体播放类。它可以用来播放歌曲、电…

java:获取桥接方法的参数名

如果一个方法是桥接方法&#xff0c;那么因为这个方法是由编译器自动生成的&#xff0c;所以它的方法参数名是无意的arg0,arg1。。。 如果要直接通过Method.getParameters(),得到的Pamameter对象中的name就是这些意义的名字。 所以对于一个由编译器生成的桥接方法&#xff0c;如…

常见的视频监控RTSP RTMP 流媒体协议及开发测试工具

一 流媒体协议 RTMP (Real-Time Messaging Protocol): 封装格式&#xff1a;FLV 或 MP4协议&#xff1a;TCP端口&#xff1a;默认2200厂家&#xff1a;Adobe Systems特点&#xff1a;实时性强&#xff0c;延迟低&#xff0c;支持服务器端的推流和拉流。应用&#xff1a;主要用…

超分CAMixerSR 使用笔记

目录 超分CAMixerSR 笔记 自己改进的图例示例: 修改目录: 设置预训练模型: 超分CAMixerSR 笔记 自己改进的图例示例: 修改目录: codes/basicsr改为codes/basicsr_m 设置预训练模型: path:pretrain_network_g: F:\project\chaofen\CAMixerSR-main\pretrained_mode…

C++初学(14)

14.1、while循环 和for循环相比&#xff0c;while循环没有初始化和更新部分&#xff0c;它只有测试条件和循环体。 while(text-condition)body首先程序计算圆括号内的测试条件&#xff08;text-condition&#xff09;表达式。如果该表达式为ture&#xff0c;则执行循环体中的…

vue3编程 -动态多开模态框实现方案

页面按需弹出多个模态框&#xff1a; 一、v-for方案&#xff1a; 采用v-for提前生成多个模态框实例&#xff0c;采用这种方案的案例社区已经很多 二、采用h函数方案&#xff1a; 代码如下&#xff0c;代码可运行&#xff1a; 基本思路&#xff1a; 1. 封装模态框组件DialogMo…

Docker快速上手

Docker 前言一、基本组成二、常用命令2.1 Docker服务2.2 image相关命令2.3 Container相关命令 三、Docker Volume 容器卷3.1 匿名挂载3.2 具名挂载 四、Docker 网络模式4.1 bridge桥接模式4.2 host主机模式4.3 None模式4.4 Container模式4.5 Customer模式 前言 本篇文章不再赘…

读软件开发安全之道:概念、设计与实施08密码学(下)

1. 对称加密 1.1. symmetric encryption 1.2. 使用各方共享的密钥来隐藏数据 1.2.1. 对称加密在本质上依赖共享密钥 1.3. 所有加密都是通过对明文进行转换&#xff0c;把明文消息&#xff08;或者原始消息&#xff09;变成无法识别的形式&#xff08;也称为密文&#xff09…

LeetCode 热题100-69 有效的括号

有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相…

我的CSDN-----第128天创作纪念日

机缘 起初的我&#xff0c;是为了在学习代码的过程中通过写博客的方式来巩固自己的知识。后来在遇到不会的问题时可以在csdn上面查找&#xff0c;寻求一点思路&#xff0c;将学到的知识通过博客的方式呈现出来。 收获 每当发布一篇博客后&#xff0c;就会收到很多人的评论加关…

Adobe Animate (AN)软件安装,硬件配置(附安装包)

目录 一、Adobe An 软件简介 Adobe An 软件的特点 Adobe An 软件的优势 下载 二、Adobe An 软件安装 安装前的准备工作 安装过程中的注意事项 安装后的设置 三、Adobe An 软件使用 高级动画技巧 交互设计 优化与性能提升 四、Adobe An 软件快捷键 选择工具快捷键…

Linux 下命令行参数和环境变量

Linux 下命令行参数和环境变量 命令行参数为什么要有命令行参数谁可以做到结论 环境变量一些现象查看环境变量添加环境变量添加内存级环境变量永久有效 其他环境变量HOMEPWDSHELLHISTSIZE 自定义环境变量定义取消 本地变量整体理解环境变量环境变量的组织方式Linux 代码获取环境…

31. 高度过渡 带粘性分区标题的列表

高度过渡 当元素的高度未知时,将元素的高度从 0 过渡到 auto。 使用 transition 指定 max-height 的变化应该被过渡。使用 overflow: hidden 防止隐藏元素的内容溢出其容器。使用 max-height 指定 0 的初始高度。使用 :hover 伪类将 max-height 更改为由 JavaScript 设置的 --…

【机器人学】7-2.六自由度机器人自干涉检测-计算圆柱体的上下圆心坐标【附MATLAB代码】

目录 前言 机械臂几何参数 机器等效圆柱体坐标确定 MATLAB代码 前言 上一章介绍了机器人自干涉检测的总体算法&#xff0c;提出了算法的三个核心&#xff1a; 一 根据机械臂的几何数据以及DH参数&#xff0c;确定机械臂等效的圆柱体的上下圆心坐标。 二 将一个圆柱体旋转到…

网络攻击原理及过程

网络攻击原理表 攻击者 内容 攻击访问 攻击效果 攻击意图 黑客 挑战 间谍 用户命令 破坏信息 好奇 恐怖主义者 脚本或程序 本地访问 信息泄密 获取情报 公司职员 自治主体 远程访问 窃取服务 经济利益 职业犯罪分子 电磁泄露 拒绝服务 恐怖事…

CSS3 3D 转换

CSS3 3D 转换 CSS3 3D 转换是一种强大的技术,它允许开发者创建出令人印象深刻的3D视觉效果,而无需复杂的JavaScript或第三方库。通过使用CSS3的3D转换功能,设计师可以轻松地将元素旋转、倾斜、移动或缩放,以创建出深度和透视感。在本文中,我们将探讨CSS3 3D转换的基础知识…