第十二次作业

3.maven的基本原理和使用

maven:是一款管理和构建java项目的工具

3.1作用

1.依赖管理-方便快捷的管理项目管理(jar包),避免版本冲突问题。2。统一项目结构-提供标准,统一的项目结构。main-实际项目资源。java-java源代码目录。resources-配置文件目录。pom.xml-项目配置文件。3.项目建构-标准跨平台的自动化项目构建方式。

//仓库:用于存储资料,管理各种jar包--本地仓库:自己计算机上的目录。中央目录:由Maven团队维护的一个目录。远程仓库/私服:一般由公司团队搭建的私有仓库。

//maven坐标:资源的唯一标识,通过该坐标可以唯一定位资源的位置。使用坐标来定义项目或引入项目中需要的依赖。--groupid:定义当前Maven项目隶属组织名称(域名反写)。artifactid:定义当前Maven项目名。version:定义当前项目版本号

3.2依赖管理
  • 依赖配置<dependency>:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

  • 依赖传递:依赖具有传递性-直接依赖:在当前项目中通过依赖配置建立的依赖关系。间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。排除依赖<exculsions>:主动断开依赖的资源,被排除的资源无需指定版本。

  • 依赖范围<scope>:依赖的jar包,默认compile情况下可以在任何地方使用。

main主程序范围有效,test测试程序范围有效,是否参与打包运行。

  • 生命周期:为了对所有的maven项目构建过程进行抽象和统一

独立的生命周期:clean清理工作、default核心工作(编译,测试,打包,安装,布署...)。site生成报告,发布站点。

生命周期阶段:每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段--

clean:移除上一次构建生成的文件

compile:编译项目源代码

test:使用合适的单元测试框架运行测试

package:将编译后的文件打包,如jar,war

install:安装项目到本地仓库

在同一套的生命周期中,当运行后面的阶段时,前面的阶段都会运行。

3.3分模块设计与开发

--将项目按照功能拆分成若干子模块,方便项目的管理与维护、拓展,也方便模块间的相互调用,资源共享。

*分模块开发需要先针对模块功能进行设计,在进行编码。不会先将工程开发完毕,然后进行拆分。

3.4继承
3.4.1继承关系

--<parent>继承描述的是两个工程之间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承

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

打包方式:jar:普通模块打包,springboot项目基本上都是jar包(内嵌tomcat运行)。war:普通web程序打包,需要部署在外部的tomcay服务器中运行。pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理。

*在子工程中,配置了继承关系之后,坐标中的groupid可以省略,因为会自动继承父工程的

*relativePath指定父工程的pom文件的相对位置(如果不指定,将会从本地仓库/远程仓库查找该项目)

3.4.2版本锁定

在maven中,可以在父工程的pom文件中通过<dependecyManagement>来统一管理依赖版本

*子工程引入依赖时,无需指定<version>版本号,父工程统一管理。变更依赖版本,只需在父工程中统一变更。

<dependencies>是直接依赖,在父工程配置了依赖,子工程会直接继承下来

<dependencyManagement>是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需版本(无需指定版本)

3.5聚合

--<module>将多个模块组织成一个整体,同时进行项目构建

作用:用于快速构建项目

聚合工程:一个不具有业务功能的空工程(有且仅有一个pom文件)

*聚合工程中所包含的模块,在构建时,会自动根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关

3.6继承与聚合

相同点:聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中。聚合与继承均属于设计性模块,并无实际的模块内容

不同点:聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些。继承实在子模块中配置关系,父模块无法感知哪些子模块继承了自己

3.7私服

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

1、Servlet执行原理

1、浏览器根据请求的地址(ip/协议/端口)建立与服务器的连接

2、浏览器将请求数据打包

3、容器将请求解析,封装成俩个对象

​ 请求-HttpServletRequest – 封装的请求数据

​ 响应-HttpServletResponse – 返回给服务器

4、容器根据具体的请求地址—找到对应的servlet创建对象

5、容器将请求和响应作为参数传递,调用对应的请求方法

6、数据写入到输出流

7、容器将响应对象打包发给浏览器

8、浏览器读取到响应的数据,渲染页面

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

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

相关文章

FastAPI和APIRouter

在FastAPI框架中&#xff0c;app FastAPI() 和 router APIRouter() 分别代表了应用的两个核心构建块&#xff0c;它们在构建API时扮演着不同的角色&#xff1a; 1、app FastAPI() 这行代码是创建FastAPI应用实例的起点。FastAPI 类是FastAPI框架的核心&#xff0c;它继承自…

小型智能驱鸟器,建筑驱鸟专用

随着城市化进程的加快&#xff0c;鸟类与人类的居住空间逐渐交织重合&#xff0c;鸟类对建筑物的侵扰问题也愈发凸显。家庭庭院、住宅窗前、屋顶&#xff0c;甚至那些承载着历史与文化底蕴的名胜古迹和精美雕像&#xff0c;都时常受到鸟粪的污染。鸟粪具有腐蚀性且很难清理&…

课题推荐系统介绍

课题推荐系统介绍 课题推荐系统是一种基于推荐算法和自然语言处理技术&#xff0c;自动化地为用户推荐符合其兴趣和需求的研究课题的系统。该系统通过分析用户的输入&#xff08;如类别、领域和关键字&#xff09;&#xff0c;结合大数据和人工智能技术&#xff0c;从庞大的课…

应用监控pinpoint调研

参考 https://blog.csdn.net/Rose_juvenile/article/details/135285508?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-135285508-blog-132330996.235^v43^pc_blog_bottom_relevance_base6&spm1001.2101.3001.4242.1&a…

数据库数据目录磁盘扩展,物理卷扩展为逻辑卷

背景&#xff0c;之前的 pg 数据库数据目录使用的是物理盘&#xff0c;不支持扩展&#xff0c;随着数据增大&#xff0c;磁盘空间告警&#xff0c;现在需要将新的磁盘制作成逻辑卷&#xff0c;以便之后扩展使用。 之前使用的数据目录为 /u01 停止数据库 停止数据库 停止数据…

Windows中配置python3.11环境安装教程

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、软件的下载和安装2.1 下载2.2 安装2.3 验证安装结果 三、最后 开篇说明 应要求为…

Java变量与标识符

一、关键字&#xff08;Keyboard&#xff09; 定义&#xff1a;被Java语言赋予了特殊含义&#xff0c;用做专门用途的字符串&#xff08;或单词&#xff09; 特点&#xff1a;全部关键字都是小写字母 官方地址&#xff1a; https://docs.oracle.com/javase/tutorial/java/nut…

DB-GPT Docker部署

感谢阅读 拉取镜像linux判断拉取是否成功的方法windows判断拉取是否成功的方法 模型以及启动容器模型启动容器 界面如下&#xff08;0.56&#xff09;&#xff1a; 拉取镜像 docker pull eosphorosai/dbgpt:latestlinux判断拉取是否成功的方法 docker images | grep "eo…

龙国南方航空滑块acw_v2+cookie+风控处理+type后缀

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可禁…

中小企业的数字化转型业务场景落地案例

引言&#xff1a;随着商业活动的复杂化和全球化程度的提高&#xff0c;合同作为商业交易的重要组成部分&#xff0c;其数量、条款和复杂性都在不断增加。企业面临着越来越多的合同管理挑战&#xff0c;包括合同数量增多、条款繁琐、文件分散存储等问题。而中小企业由于管理不到…

elk对于集群实例的日志的整合-基于logstash采集日志

说明&#xff1a;基于logstash采集日志 环境&#xff1a; 物理机192.168.31.151 一.启动2个测试实例&#xff0c;每5-10s随机生成一条订单日志 实例一 包位置&#xff1a;/home/logtest/one/log-test-0.0.1-SNAPSHOT.jar 日志位置:/docker/elastic/logstash_ingest_data/l…

C++学习笔记:C++基础语法+编程思想

C基础 参考&#xff1a;C 教程 | 菜鸟教程 (runoob.com) 用于部署、opencv 学习内容&#xff1a;编程核心部分 学习要求&#xff1a;能读懂代码&#xff0c;复现代码 python&#xff1a;语言简洁&#xff0c;用于解决数据分析问题 面向对象&#xff1a;一种程序的编程思维&…

leecode 111.简单题 给定一个二叉树,计算二叉树的最小深度

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 叶子节点是指没有子节点的节点 class Solution {public int minDepth(TreeNode root) {/**第一反应是通过一个递归解决&#xff1b;*/if(root null){return 0;}int lmd minDepth(root.left);int rmd minDepth(roo…

MYSQL存储过程的创建

关于存储过程的题目 1、创建存储过程,查看user表中的所有数据 2、创建存储过程avg_order_quantity,返回所有订单的平均工资 3、创建存储过程show_max_bprice,用来查看bookS的单价最贵的价格 4、创建存储过程show_min_bprice,用来查看bookS的单价最低的价格&#xff0c;并将…

JVM之双亲委派机制

1.双亲委派机制 在Java中&#xff0c;类加载器具有层次结构。每个Java实现的类加载器中保存了一个成员变量叫“父”类加载器&#xff08;parent&#xff09;&#xff0c;可以理解为上级&#xff0c;并不是继承关系。应用程序类加载器的parent父加载器是扩展类加载器&#xff0…

ulimit报错

问题 执行命令“ulimit -c 2048 ”时报错&#xff1a;“bash: ulimit: core file size: cannot modify limit: Operation not permitted” 原因 权限不够。 解决办法 执行命令“sudo gedit /etc/security/limits.conf”打开文件limits.conf文件内添加内容如下&#xff1a;…

在 Java 中从 for 循环中移出元素的原理及解决方案

在 Java 中从 for 循环中移出元素的原理及解决方案 在 Java 编程中&#xff0c;从集合中移除元素是常见操作。然而&#xff0c;直接在 for 循环中删除或移出元素往往会导致 ConcurrentModificationException&#xff08;数组下标越界&#xff09;。本文将详细解释这种情况发生…

【索引】数据库索引之散列索引

目录 1、什么是散列&#xff1f; 2、如何评价一个散列函数的好坏&#xff1f; 3、散列中的桶溢出处理 4、散列在索引中的应用 4、顺序索引和散列索引的比较 1、什么是散列&#xff1f; 顺序文件组织的一个缺点是我们必须访问索引结构来定位数据&#xff0c;或者必须使用二…

最经典实用的Buck电路仿真与设计 /Psim仿真Buck电路详解

为了节省大家时间,减少找软件的麻烦,提供了软件下载地址,如果需要下载,请访问下面的网站进行购买: Psim电力仿真软件安装-送教程和维也纳整流电路仿真-可远程安装-淘宝网 (taobao.com) 或者加作者微信,发20元微信红包便可直接获取下载软件,如果找不到软件,有需要下载的…

软件协同开发是一种通过团队合作来创建软件的开发方法

软件协同开发是一种通过团队合作来创建软件的开发方法。与传统的瀑布模型相比&#xff0c;软件协同开发强调团队成员之间的合作和沟通&#xff0c;以实现更高效的开发过程和更优质的软件产品。 在软件协同开发中&#xff0c;团队成员通过一系列工具和技术来协同工作。这些工具…