2024年Python最新超级详细的Maven使用教程_mavn使用学习

        <version>4.9</version>
        <scope>test</scope>
    </dependency>
 </dependencies>

**Maven为什么使用坐标?**


* Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范
* 拥有了统一规范,就可以把查找工作交给机器


### 2、 依赖的范围


依赖声明主要包含如下元素:



junit junit 4.9 test

其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:


1. compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
2. test:测试依赖范围。只对于测试classpath有效
3. provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api(Tomcat)
4. runtime:运行时提供。例如:jdbc驱动


![image-20210924130351620](https://img-blog.csdnimg.cn/img_convert/808a988ae7f234542296f0b6bae539b6.png)


### 3、仓库管理


**什么是Maven仓库?**


用来统一存储所有Maven共享构建的位置就是仓库


**Maven仓库布局**


* 根据Maven坐标定义每个构建在仓库中唯一存储路径


![image-20210924135028633](https://img-blog.csdnimg.cn/img_convert/45158868d0c3420f95b5b331e92056cf.png)


**仓库的分类**


* 本地仓库  
 ~/.m2/repository/(默认的仓库目录)  
 每个用户只有一个本地仓库(需要从中央仓库中下载资源存到本地仓库)
* 远程仓库


	+ 中央仓库:Maven默认的远程仓库 http://repo1.maven.org/maven2
	+ 私服:是一种特殊的远程仓库,它是架设在局域网内的仓库
	
	 ![image-20210924135412539](https://img-blog.csdnimg.cn/img_convert/30e88a963bf82e1387dc6688c6a1d819.png)
	+ 镜像:用来替代中央仓库,速度一般比中央仓库快


### 4、 生命周期


**何为生命周期?**


* Maven生命周期就是为了对所有的构建过程进行抽象和统一
* 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤


**Maven三大生命周期**


* clean:清理项目的
* default:构建项目的
* site:生成项目站点的


**生命周期Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:**


* Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
* Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
* Site Lifecycle 生成项目报告,站点,发布站点。


注意:


* 再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。


**Clean生命周期包含了三个阶段:**


* pre-clean 执行一些需要在clean之前完成的工作
* clean 移除所有上一次构建生成的文件
* post-clean 执行一些需要在clean之后立刻完成的工作


clean生命周期每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。比如,运行mvn clean ,这个的clean是Clean生命周期的一个阶段。有Clean生命周期,也有clean阶段。


mvn clean 中的clean就是上面的clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,mvn clean 等同于 mvn pre-clean clean ,如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。这是Maven很重要的一个规则,可以大大简化命令行的输入。


**Site生命周期**


Site生命周期pre-site 执行一些需要在生成站点文档之前完成的工作;site 生成项目的站点文档 ;post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备;site-deploy 将生成的站点文档部署到特定的服务器上; 这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点,这可是Maven相当强大的功能,Manager比较喜欢,文档及统计数据自动生成,很好看。


**Default生命周期**


Default生命周期Default生命周期是Maven生命周期中最重要的一个,绝大部分工作都发生在这个生命周期中。这里,只解释一些比较重要和常用的阶段:


![img](https://img-blog.csdnimg.cn/img_convert/f287367292b6105eb7d915d8a6836847.png)


运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。此外,Maven的插件机制是完全依赖Maven的生命周期的,因此理解生命周期至关重要。


### 5、Maven插件


* 插件目标  
 Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成
* 每个插件都能实现多个功能,每个功能就是一个插件目标
* Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务例如compile就是插件maven-compiler-plugin的一个插件目标。例如:mvn compile或者全写 mvn compiler :compile




### 最后

> **🍅 硬核资料**:关注即可领取PPT模板、简历模板、行业经典书籍PDF。  
> **🍅 技术互助**:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。  
> **🍅 面试题库**:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。  
> **🍅 知识体系**:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值