9. maven web项目以及版本管理

1. maven web项目

  • 自己之前本科时,使用过servlet和ajax实现基于java的web系统
  • 现在,接触较多的是使用spring boot+mybatis实现java web后端系统
  • 现在回想起来,最大的感受是,使用servlet做项目时,所有的jar都是放在lib目录的
  • 而基于springboot的项目,开始使用maven进行依赖管理了。
  • 通过学习《maven实战》一书,才知道原来可以使用maven实现基于servlet的java web系统

自己总结了一些重点吧,以后真正使用到时可以再回来认真学习:

  1. web项目中WEB-INF必须有一个web.xml文件,是web资源描述表
  2. 基于maven的web项目,打包方式应该为war
  3. 打包项目时,maven会自动将pom文件中依赖对应的jar放入lib目录中
1.1 jetty-maven-plugin进行项目测试
  • 进行web项目的开发时,我们希望在本地快速进行web项目的部署和测试。最好能热部署,代码的改动不需要重新部署就能自动更新
  • 书中介绍了jetty-maven-plugin用于进行日常的快速开发和测试
  • 使用jetty-maven-plugin有以下几点需要注意:
  • 想要实现热部署,需要将<scanIntervalSeconds>设为一个不为0的正整数。如果设置为0,表示不扫描代码,会失去热部署功能。
  • 使用jetty-maven-plugin插件,需要在settings.xml中单独配置插件仓库(仓库名org.mortbay.jetty,默认的apache和mojo插件仓库中没有该插件
1.2 cargo进行项目部署
  • cargo-maven2-plugin可以用于实现web项目的自动部署,可以部署到远程容器
  • cargo-maven2-plugin支持三种部署模式
  1. 本地部署的standalone模式:通过将容器(如tomcat)的配置拷贝到项目中,实现项目的自动化部署
  2. 本地部署的existing模式:直接使用容器的配置,并将项目部署到对应的位置
  3. 远程部署runtime模式:既不使用独立的容器配置,也不使用本地已有的容器配置,而是依赖于一个已经运行的容器

2. 版本管理

  • 《maven》实战一书的版本管理,对我来说比较有用的是maven项目的version是如何确定的。
  • 其他的,关于代码的版本控制,也就是基于github或subversion等进行代码变更管理,在工作中自然而然会用到的。
  • 而且,不同的公司或小组,对版本控制的制度也不一样,比如什么开发分支、总分支、添加tag、commit规范等,等用到时自己就知道了
2.1 版本管理和版本控制
  • 首先,需要区分两个概念:版本管理版本控制
  • 前者,是指对项目version的管理。例如,合适可以增加大版本号,何时增加小版本号,紧急修复的版本号等
  • 后者,及时基于git等代码变更管理工具,进行项目变更的追踪
  • 其次,是正式项目的发布应该满足以下条件:
    ① 所有自动化测试全部通过
    ② 项目无任何快照版本的依赖/插件
    ③ 向目中的代码已经全部提交到版本控制系统中
  • 重要的是,为代码添加tag,用于标识项目的状态,以便快速回退或紧急修复
  • 然后是maven项目的version,例如:1.2.3-beta-1
    ① 1表示主版本,对应项目的重大架构变更。例如,实时计算组件从只支持流式数据到支持批数据
    ② 2表示次版本,表示大范围的功能增加或变化,以及bug修复
    ③ 3表示增量版本,一般对应紧急bug修复
    ④ beta-2表示里程碑版本,但往往不稳定需要很多测试(前三种版本,我感触挺深的。最后一中版本,我反正没啥感受 😂 )
2.2 其他内容
  • 书中还还讲述了很多其他的知识,如GPG签名、自动化版本发布/创建
  • 自己实在是没啥,感受。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值