maven笔记

maven是什么?

maven是Apache下的一个开源项目,它是一个项目管理工具,它用于对java项目进行项目构建、依赖管理及项目信息管理。当前使用Maven的项目在持续增长。

在这里插入图片描述
Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
1、项目对象模型(Project Object Model,简称为POM)
每个工程通过pom.xml文件统一定义项目所依赖的jar 包,定义项目构建过程,定义插件。。。
2、一个项目生命周期(Project Lifecycle)
maven将项目构建过程规范成一个生命周期,清理、初始化、编译、测试、报告 、打包、部署、站点生成等。。
在这里插入图片描述
通过一个maven的命令完成各各生命周期。
比如:测试
执行mvn test ,自动执行工程中每个junit单元用例
打包命令:
如果是一个java工程,执行mvn package打成一个jar
3、一个依赖管理系统(Dependency Management System)
通过定义项目所依赖组件的坐标由maven进行依赖管理。
依赖3.0.1,通过在pom.xml中定义依赖即可将servlet的jar包自动加入工程:
pom.xml中定义依赖如下:

javax.servlet
javax.servlet-api
3.0.1
provided


mysql
mysql-connector-java
5.1.38

4、标准集合(maven的基础)
maven定义了很多标准规范,比如:将工程的目录结构规范化了,规范化依赖管理、规范项目生命周期。。。
5、插件(plugin)目标(goal)
maven进行项目构建等过程,通过插件来完成。。
比如:将工程部署到tomcat,通过tomcat和maven的插件来完成

使用maven的原因

1、开发人员将功能开发完成,编译、打包、运行正常,而后提交svn,测试人员从svn获取代码后编译、打包、运行报错。
原因:整个工程构建过程没有统一化,开发人员构建环境和测试人员不一致,开发人员使用eclipse编译运行,测试人员使用一些工具软件(比如:Ant通过脚本进行编译、打包)。
解决:使用maven解决,maven是一个专业项目构建工具,将项目构建的过程进行规范统一,开发人员和测试人员都使用maven进行构建。
了解:maven比ant好处,ant通过手动编写脚本,maven通过约定(约定优于配置/规范)
2、一个项目工程中时间长了开发人员也搞不清楚项目中的某些jar的作用,用在哪些模块,不得不每过一段时间每个jar包梳理不遍。
梳理的目的:减少工程的大小,避免jar版本的冲突。
原因:通过从第三方官方网站下载jar,加入工程的jar都是工程所依赖的jar包,管理工程的依赖的jar的过程不规范。
解决:maven解决,maven定义一套规范依赖管理,通过定义jar包的坐标(一个坐标对应一下jar包)通过maven自动将jar从互联网下载到本地,加入工程。
3、项目使用的第三方框架要升级,从第三方框架官方网站下载jar包,加入工程,运行后报错,原来是第三方框架依赖的jar版本冲突了。
原因:加入工程的jar都是工程所依赖的jar包,管理工程的依赖的jar的过程不规范。
解决:maven通过依赖管理进行解决,maven在依赖管理时确定使用哪个版本(定义好坐标就行了)
4、项目的模块很多,每次启动项目需要从svn获取全部模块的项目代码编译运行,由于工程大项目启动慢,工作效率低下。
原因:并没有对项目的模块进行真正的单独开发。
解决:maven解决,可以将各各模块定义成单独的工程,将各各模块java源代码编译成一个jar包,发布maven的仓库中,各各去使用jar包通过坐标自动将jar下载到本地。
其中一个模块开发人员,只会维护模块的代码,通过maven的依赖管理将jar下载到工程中,jar包中代码不用编译了,省时间了。
要运行整个工程,创建一个父工程,聚合各各模块工程,父工程自动判断各各模块的依赖关系,最终打成一个war包,自动运行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值