Maven笔记

1.目前掌握的技术

Maven笔记

2.目前的技术在开发中存在的问题[why]

1.一个项目就是一个工程
如果项目非常庞大,就不适合继续使用package来划分模块。最好是每一个模块对应一个项目,利于分工协作。
借助于maven就可以将一个项目拆分成多个工程。
2.项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下
带来的问题:同样的jar包文件重复出现在不同的项目工程中,一方面浪费存储空间,另外也让工程比较臃肿。

借助Maven,可以将jar包仅仅保存在“仓库”中,有需要使用的工程“引用”这个文件,并不需要重复复制。
3.jar包需要别人替我们准备好,或到官网下载
所有知名框架或第三方工具jar包已经按照统一规范放在了Maven的中央仓库中。
4.一个jar包依赖的其他jar包需要自己手动加到项目中
Maven会自动将被依赖的jar包导入进来。
## 3.Maven是什么[what]
1.Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理 。
构建工具的发展:Make→Ant→Maven→Gradle
2.构建:就是以我们编写的Java代码、框架配置文件、国际化等其他资源文件、jsp页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。
3.构建过程中的几个主要环节

①清理:删除以前的编译结果,为重新编译做好准备。
②编译:将Java源程序编译为字节码文件。
③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
④报告:将每一次测试后以标准的格式记录和展示测试结果。
⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java工程对应jar包,Web工程对象war包。
⑥安装:在Maven环境下特指将打包的结果——Jar包或War包安装到本地仓库中。
⑦部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行。
4.自动化构建(简答举例)
程序员一天的工作:
Maven笔记
能否将这些程式化的工作交给机器自动完成呢?——当然可以!这就是自动化构建。
Maven笔记
此时 Maven 的意义就体现出来了,它可以自动的从构建过程的起点一直执行到终点:
Maven笔记
5.Maven安装
https://blog.****.net/weixin_43920778/article/details/105218281

4.Maven的核心概念

1.约定的目录结构
2.POM
3.坐标
4.依赖
5.库
6.生命周期/插件/目标
7.继承
8.聚合

5.第一个Maven工程

1.创建约定的目录结构
Maven笔记
pom.xml文件为Maven工程的核心配置文件
2.为什么要遵循约定的目录结构呢?
我们在开发中如果需要让第三方工具或框架知道我们自己创建的资源在哪,那么基本上就是两种方式:
①以配置文件的方式明确告诉框架 如 < param-value>classpath:spring-context.xml < /param-value>
②遵循框架内部已经存在的约定 如log4j的配置文件名规定必须为 log4j.properties 或 log4j.xml ;Maven 使用约定的目录结构

6、Maven常用命令

注意:执行与构建过程相关的Maven命令,必须进入pom.xml 所在的目录。
常用命令
【1】mvn clean : 清理
【2】mvn compile : 编译主程序
【3】mvn test-compile : 编译测试程序
【4】mvn test : 执行测试
【5】mvn package : 打包
【6】mvn install : 安装
【7】mvn site :生成站点