首页 > 编程语言 >JavaWeb回顾与小结(八)

JavaWeb回顾与小结(八)

时间:2023-07-11 19:55:46浏览次数:39  
标签:依赖 版本 回顾 仓库 私服 模块 小结 工程 JavaWeb

分模块设计与开发

介绍

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

分模块开发的好处

  • 增强代码的复用性:一些通用的工具类,实体类可以抽取到独立的模块,进行重用
  • 便于分工:按业务划分模块可以让开发人员编写代码更为独立,互不干扰
  • 对maven项目来讲,一些通用的依赖,插件,可以抽取到父模块,简化配置

分模块开发步骤

  • 创建父模块
  • 创建子模块
  • 配置模块间的依赖

实现

注意事项:分模块开发需要先针对模块功能进行设计,再进行编码.不会先将工程开发完毕,然后进行拆分

父工程的打包方式是什么

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

聚合与继承

聚合

在父模块pom.xml中使用module标签统一管理子模块叫做聚合

好处是通过父模块能够快速构建(清理,编译,打包)多个子模块

注意

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

继承

概念

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

作用

简化依赖配置,统一管理依赖

实现

在子模块pom.xml中使用标签指定要继承的父模块

不同点

  • 聚合是在父模块中配置关系,父模块可以感知到参与聚合的子模块有哪些
  • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

版本锁定

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

注意事项

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

使用<dependencyManagement>定义的依赖是把这个依赖导进来了吗

  • 不是,仅仅只是声明/锁定了依赖的版本
  • 好处:子模块在使用这个依赖的时候不需要再定义版本号,由父模块统一管理依赖的版本

<dependencyManagement><dependencies>的区别是什么

  • 是导入依赖,在父工程配置了依赖,子工程会直接继承下来
  • 是统一管理依赖版本,不会导入依赖,还需要在子工程中引入所需依赖(无需指定版本)

属性与版本号

版本号

我们开发的每一个项目都会有一个版本号,后期随着项目的升级,版本号都会随之变化

SNAPSHOT(快照版本)

项目开发过程中的临时性版本叫快照版本也叫开发版本,快照版本会随着开发的进展不断更新

RELEASE(发布版本)

也叫稳定版本,这种版本所对应的代码是稳定的,即便进行功能的后续开发,也不会改变当前发布版本的内容,这种版本称为发布版本,将来用于上面上线

预定规范

规范

<主版本>.<次版本>.<增量版本>-<里程碑版本>

主版本

表示项目重大架构的变更,如spring5相较于spring4的迭代

次版本

表示有较大的功能增加和变化,或者全面系统的修复漏洞

增量版本

表示有个别漏洞的修复

里程碑版本

表明一个版本的里程碑,例如RELEASE,SNAPSHOT,beta

拆分项目,实现分模块开发

步骤

  1. 让tlias-parent父模块继承spring-boot-starter-parent,配置要继承的依赖,版本锁定,属性
  2. 将原项目中相关代码和依赖拷贝到tlias-pojo和tlias-utils子模块中,使其编译不报错
  3. 将原项目中相关代码,依赖,插件拷贝到tlias-web-management子模块中,使其编译不报错
  4. 运行tlias-web-management中的启动类,运行nginx,访问项目

私服

介绍和搭建

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

依赖查找顺序

本地仓库->私服->中央仓库

注意事项

私服在企业项目开发中,一个项目/公司,只需要一台即可(无需我们自己搭建,会使用即可)

内部仓库分类

宿主仓库hosted

保存无法从中央仓库获取的资源
公司自主研发项目,第三方非开源项目

代理仓库proxy

和中央仓库打交道的仓库,代理远程仓库,通过nexus访问其他公共仓库

仓库组group

将若干个仓库组成一个群组,仓库组不能保存资源,属于设计型仓库

从私服下载jar

在项目的pom.xml文件中配置私服仓库组的地址即可

上传jar至私服

  • 设置私服的访问用户名/密码(settings.xml中的servers中配置)
  • maven工程的pom文件中配置上传(发布)的私服地址
  • 在idea中双击deploy发布项目

标签:依赖,版本,回顾,仓库,私服,模块,小结,工程,JavaWeb
From: https://www.cnblogs.com/kyrie-66/p/17353317.html

相关文章

  • Git快速回顾总结
    Git引入Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(java类,xml文件,html页面等),在软件开发过程中被广泛使用为什么使用Git代码回溯版本切换多人协作远程备份概述Git简介Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行......
  • Hive 的执行优化问题小结
    hive的谓词下推和optimize优化功能的讨论sql核心的大概结构为 withuser_tableas( select user_id from user)select t1.user_idfrom( select t1.user_id, .... from ( select user_id from user_1 )t1 leftjointable_1_1o......
  • 上周热点回顾(7.3-7.9)
    热点随笔:· 关于Java已死,看看国外开发者怎么说的 (waynaqua)· 我整理了近五年的开发者报告,看看国内外有什么差异? (后厂村思维导图馆)· 我坚定的认为,这个源码肯定是有BUG的! (why技术)· 好用到飞起的新项目「GitHub热点速览」 (削微寒)· 除了参数,ref关键字还可以用......
  • Java - JavaWeb - Concepts
    1.Servlet配置1.1.配置父级项目配置好IntellijIDEA/MAVEN之后, 创建一个新项目com.crevew.javaweb-02-servlet,然后删除所有的SRC(方便接下来创建servlet模块);然后更新最外面的父pom.xml,加上<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.......
  • Java-基本语法回顾总结[109-126]
    怎么拆分微服务DDD领域驱动设计什么是中台项目怎么保证敏捷开发消息队列选型RocketMQ事务消息实现ZK为什么能作为注册中心RocketMQ底层实现原理消息队列如何保证可靠传输消息队列的作用死信队列和延时队列是什么如何保证消息的高速读写epoll和poll的......
  • Java-基本语法回顾总结[73-84]
    redis与MySQL如何保持数据一致?1.删除redis缓存2.更新MySQL3.删除redis缓存redis的持久化机制两种持久化命令:save:阻塞性持久化,会阻塞redis主进程,直到持久化完成bgsave:非阻塞性持久化,通过新建子线程专门持久化,从而不影响redis主进程手动就是上面两种命令自动就是sa......
  • JavaWeb知识
    day01-XML&tomcatXML介绍XML:eXtendsiblemarkuplanguage可扩展的标记语言XML有什么用?1.可以用来保存数据2.可以用来做配置文件3.数据传输载体定义XML其实就是一个文件,文件的后缀为.xml文档声明简单声明:version:解析这个xml的时候,使用什么版本的解析器解析<?xmlversi......
  • Java-基本语法回顾总结[25-36]
    常用的JVM启动参数有哪些?线程安全的理解?守护线程的理解?threadlocal的底层原理(25)常用的JVM启动参数有哪些?(26)线程安全的理解?(27)守护线程的理解?(28)threadlocal的底层原理(29)并发、并行与串行之间的区别?(30)Java死锁应如何避免?(31)......
  • 线性代数本质理解回顾(六)点积与对偶性
     这个计算有一个完美的几何解释。   当两个向量的大致方向相同,则为正。若垂直则为0. 若相反,则为负。点积与顺序无关让我感到惊讶。直观上说说为什么无关,如果有对称性,则可以利用对称性。     为什么点积是对应坐标相乘并将结果相加?  在继续深入之......
  • 上周热点回顾(6.26-7.2)
    热点随笔:· 34岁上岸,我终于圆了自己的考研梦 (独孤风)· 11k+Star一款更适合中国用户的开源BI工具 (削微寒)· C#实现Linux视频聊天、远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS) (Shawshank)· 三年,能否成为一名真正的架构师 (陈珙)· 以管道的方式来完成复......