梳理Maven的前世今生

我在尚硅谷网站上学了maven的教程,所以写了这篇博客来进行总结一下,也证明了我学过maven,这只是简单的记录一下,如果有想详细学习的小伙伴可以自己去搜索一下尚硅谷官网或者给我留言,我发给你详细教程。

一    为什么我们需要Maven这个构建工具呢?

  • 没有学习过Maven的,都会像我一样有过疑问,不用Maven,也可以正常的进行B/S架构的开发项目,从表述层,业务逻辑层,持久化层再到数据库层都有成熟的解决方案。

  • Maven可以帮助我们做什么呢?

1   添加第三方的jar包    2    解决jar包的依赖关系  3    获取第三方的jar包   4   将项目拆分为多个功能模块

二    Maven是什么

  • Maven是Apache软件基金会组织维护的一款自动化构建工具,是服务于java平台的项目构建和依赖管理

构建就是以我们编写的 Java 代码、框架配置文件、国际化等其他资源文件、JSP 页 面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。

构建的主要过程:

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

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

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

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

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

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

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

  • Maven的核心概念

①POM

Project Object Modules 项目对象模型,pom.xml是maven工程的核心配置文件。

②约定的目录结构

Hello                               工程名作为根目录
  |---src                            源码目录
  |---|---main                     主程序目录
  |---|---|---java                 主程序java源文件目录
  |---|---|---resources        主程序的资源文件目录
  |---|---test                       测试程序目录
  |---|---|---java                  测试程序java源文件目录
  |---|---|---resources         测试程序的资源文件目录
  |---pom.xml                    Maven工程的核心配置文件

③坐标

使用下面的三个坐标可以唯一在仓库中定位一个Maven工程
[1]groupid:公司或组织的域名倒序+当前项目名称
[2]artifactId:当前项目的模块名称
[3]version:当前模块的版本 
<groupId>com.atguigu.maven</groupId> 
<artifactId>Hello</artifactId> 
<version>0.0.1-SNAPSHOT</version>

④依赖管理

Maven有三种依赖,compile,test,provided

     

⑤仓库管理

⑥生命周期

⑦插件和目标

⑧继承

为什么需要继承呢?因为非compile的依赖不能被有效的传递,所以需要配置一个父工程,让子工程去继承这个父工程,从而可以获取这个依赖关系

⑨聚合

为什么要使用聚合呢?将多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能够生效。修改源码后也需要逐个手动进 行 clean 操作。而使用了聚合之后就可以批量进行 Maven 工程的安装、清理工作。

在总的聚合工程中使用 modules/module 标签组合,指定模块工程的相对路径即可

<modules> 

    <module>../SubProject1</module> 

    <module>../SubProject2</module> 

    <module>../SubProject3</module>

</modules>

三    Eclipse软件中整合maven插件

maven安装和下载可以参考这篇博客     https://blog.csdn.net/jiankangzhu/article/details/104202759

发布了15 篇原创文章 · 获赞 0 · 访问量 1765

猜你喜欢

转载自blog.csdn.net/jiankangzhu/article/details/104209548
今日推荐