Maven(总结)深入浅谈。
来源:互联网 发布:sublime text 3调试js 编辑:程序博客网 时间:2024/06/08 23:57
在工作中经常用到maven对项目进行构建,版本控制,jar包依赖等操作,但是真要说出maven的到底是什么还真是有困难,所以小编在此对maven进行一下总结。
首先Maven的干什么的?
maven主要有三种功能:依赖管理,项目构建,版本控制。
那么下面我们就以依赖管理,项目构建,版本控制 这三点去详细介绍。
一、依赖管理:
在用eclipse创建maven项目后,项目中会有一个pom.xml文件,这个文件主要用来管理项目所需的依赖包。通过maven的pom.xml文件,我们可以直接在http://mvnrepository.com/ 中所搜项目所需的jar包,这样就省去了我们去各种官网找各种版本的包了。
二、项目构建:
maven的核心jar包非常小,所以很多功能都是采用插件来实现的。比如clean,install等。同时maven在构建阶段定义了三个生命周期分别是:clean :清理;default :构建;site:建站发布。
比较常用的主要是clean和default,其中default是生命中期中最核心的部分。他包含了构建项目中真正需要执行的步骤:
- validate
- initialize
- generate-sources
- process-sources
- generate-resources
- process-resources :复制和处理资源文件到target目录,准备打包;
- compile :编译项目的源代码;
- process-classes
- generate-test-sources
- process-test-sources
- generate-test-resources
- process-test-resources
- test-compile :编译测试源代码;
- process-test-classes
- test :运行测试代码;
- prepare-package
- package :打包成jar或者war或者其他格式的分发包;
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install :将打好的包安装到本地仓库,供其他项目使用;
- deploy :将打好的包安装到远程仓库,供其他项目使用;
三、版本控制:
我们在开发中经常会发现某个jar包是这样的结构:1.2.3-beat-4.jar。为何要定义的这么繁琐呢,有什么实际意义?
“ 1 ” : 表示该版本的第一个重大版本
“ 2 ” : 表示这是基于重大版本的第二个次要版本
“ 3 ” : 表示该次要版本的第三个增量
" beat-4" : 表示该增量的一个里程碑
用一个图来描述:
< 主版本 > ------ < 次版本 > ------ < 增量版本 > ------ < 里程碑版本 >
s主版本:表示了项目的重大架构变更 struts1 -- struts2
次版本:表示较大范围的功能增加和变化 Nexus1.5 ---- Nexus1.4
增量版本:一般表示重大Bug修复
里程碑版本:指某一个版本的里程碑 *.*-alpha-1 *.*-beat-1
看起来有点麻烦啊, 但是在一般来说,我们只会声明主版本和次版本,增量版本和里程碑版本就不一定了。
maven中约定的版本次序:对于主版本、次版本、增量版本来说他们的比较是基于数字的,因此:1.5>1.4>1.3>1.2.11>1.2.8
对于里程碑版本来说,比较是基于字符串的,因此:1.5>1.4>1.3>1.2.3>1.2.11
以上来源于多篇博客,再此感谢各位原创作者。
- Maven(总结)深入浅谈。
- Maven深入学习(四)- 知识总结
- Maven深入学习(四)- 知识总结
- Maven浅谈(一)
- Maven浅谈之快速入门总结(maven项目的创建、打包、执行等)
- Maven学习(十四)--Maven深入学习(四)- 知识总结
- Maven学习总结(16)——深入理解maven生命周期和插件
- Maven学习总结(17)——深入理解maven灵活的构建
- Maven学习总结(18)——深入理解Maven仓库
- Maven学习总结(18)——深入理解Maven仓库
- Maven学习总结(16)——深入理解maven生命周期和插件
- Maven学习总结(17)——深入理解maven灵活的构建
- Maven学习总结(19)——深入理解Maven相关配置
- Maven学习总结(12)——深入理解maven生命周期和插件
- Maven学习总结(13)——深入理解maven灵活的构建
- Maven学习总结(14)——深入理解Maven仓库
- Maven学习总结(15)——深入理解Maven相关配置
- Redis(简介)深入浅谈。
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。
- Top-level const and low-level const
- 使用Construct2制作HTML5游戏
- 从查找素数反思代码优化
- bzoj1061: [Noi2008]志愿者招募(最小费用最大流)
- Maven(总结)深入浅谈。
- VTK学习(一)SetInputData()和SetInputConnection()替换SetInput()
- UVA
- 设计模式
- TB 16 10 29 PM
- BP神经网络
- 论文投稿技巧有哪些
- Json编辑器
- 洛谷P1726 上白泽慧音(强连通分量)