Maven项目管理工具概述(一)

Maven项目管理工具

一、Maven概述[了解]

1.问题引入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IFD4AnUp-1593161829374)(../img-folder/Maven/1576483068494.png)]

l 目前存在的问题

运用我们目前学习的技术已经可以开发一个小型的项目了,但是在实际开发中,我们的项目规模要复杂的多,遇到的问题也更多!比如:

1、jar包的管理:多个项目依赖同一个jar包,要复制多次,jar升级时又得重新复制多次,jar之间还可能有多重依赖关系,容易管理混乱

2、项目的管理:项目规模越来越大,需要拆分成多个子模块,模块之间的相互依赖关系需要统一管理,并且项目生命周期中的编译,打包,测试,运行等步骤都需要统一管理

l 如何解决?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13qTScZv-1593161829393)(../img-folder/Maven/1576483131060.png)]

开发一个工具对jar包和项目进行统一的管理,比如:

把jar包都编个坐标,记录并存放在一个地方(这个地方称作为仓库),项目中要用哪个jar就根据坐标来仓库中找就行了;

对项目生命周期和模块进行统一管理,能够自动化的执行编译,打包,测试,运行等操作。

而我们想到的这些解决方案,早就有大牛帮我们实现好了,那就是Maven!

总结:通俗的说:maven就是用来管理jar包+管理项目

注意:这些工具都是帮助/辅助我们工作的,我们最终的开发产出物都是代码

2.初识Maven

l 官网

http://maven.apache.org/

l 百科介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sH1cePbc-1593161829395)(../img-folder/Maven/wps3.jpg)]

l 说人话

Maven是一个项目管理工具,可以对项目和jar包进行统一个管理,包括:项目的构建(执行项目的生命周期)、项目的生命周期(编译、测试、打包、部署等)、项目的模块依赖关系和jar包的依赖关系

l Jar包管理

l 自动化的项目构建

3.Maven的相关概念

(1)项目对象模型(POM)
Project Object Model:POM对象模型,其实就是一个xml文件,名字叫做pom.xml,每个Maven工程中都有一个pom.xml文件,定义工程(所依赖的jar包)、(本工程的坐标、打包(jar/war)运行方式)。

Maven通过坐标对项目工程所依赖的jar包统一规范管理

企业使用时,也叫做GAV坐标

Maven的坐标使用如下三个量在 Maven 的仓库中唯一的确定一个jar。

[1] groupid:公司或组织的域名倒序+[当前项目名称]

[2] artifactId:当前项目的模块名称

[3] version:当前模块的版本

例如:要引入junit的测试jar,只需要在pom.xml配置文件中配置引入junit的坐标即可

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>
(2)生命周期

l 清理、编译、测试、报告 、打包、部署、站点生成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfbPas1r-1593161829399)(../img-folder/Maven/wps4.png)]

①清理:删除以前的编译结果,为重新编译做好准备。

②编译:将Java 源程序编译为字节码文件。

③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。

④报告:在每一次测试后以标准的格式记录和展示测试结果。

⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。

⑥安装:在 Maven 环境下特指将打包的结果——jar 包安装到本地仓库中或把 war包安装到web容器中。

⑦部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行。

(3)Maven项目标准目录结构

Maven是约定思想的体现,约定>配置>编程,maven之前有一个ant工具(告诉它你的源代码在哪个路径下,然后编译输出到哪个路径)

l Maven工程有自己标准的目录结构。

而 Maven 正是因为指定了特定目录保存文件才能够对我们的 Java 工程进行自动化构建(就是自动执行上面的生命周期)。

l 标准目录结构示例

Project

|-src

| |-main

| | |-java —— 存放项目的.java文件

| | |-resources ——存放项目资源文件,如spring, hibernate配置文件

​ |-webapp —— webapp目录是web工程的主目录

​ |-WEB-INF

​ |-web.xml

| |-test

| |-java —— 存放所有测试.java文件,如JUnit测试类

| |-resources —— 测试资源文件

|-target ——目标文件输出位置例如.class、.jar、.war文件

|-pom.xml ——maven项目核心配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BollRFTc-1593161829402)(../img-folder/Maven/wps5.jpg)]

(4)Maven插件

maven 管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。

(5)Maven仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNEDHJLN-1593161829403)(../img-folder/Maven/1576483374423.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TyAKRLRt-1593161829405)(../img-folder/Maven/wps7.jpg)]

仓库名称作用
本地仓库相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
中央仓库(远程仓库)是一种远程仓库,仓库中的jar包由专业团队(maven团队)统一维护。里面存放了全世界大多数流行开源软件jar包中央仓库的地址:http://mvnrepository.com/tags/maven
私服(远程仓库)在公司内部架设一台私服,其它公司架设一台仓库,对外公开。

4.使用Maven的好处

通过上边介绍传统项目和maven项目在项目构建及依赖管理方面的区别,maven有如下的好处:

1、自动构建(生命周期管理):maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。

2、依赖管理:maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。

3、跨平台:maven命令可在window、linux上使用,命令无差别。

4、提升效率:遵循maven规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时小浅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值