Maven 基础认识以及坐标认识(一)

发布时间 2023-12-29 14:06:27作者: 唏嘘-

1、Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目【构建】和【依赖管理】

构建的几个环节:

①清理:删除以前的编译结果,为重新编译做好准备。
②编译:将 Java 源程序编译为字节码文件。
③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
④报告:在每一次测试后以标准的格式记录和展示测试结果。
⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。
⑥安装:在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。
⑦部署:将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。

2、pom文件:Project Object Model 项目对象模型,将 Java 工程的相关信息封装为对象作为便于操作和管理的模型;

maven的坐标:

groupid:公司或组织的域名倒序+当前项目名称
artifactId:当前项目的模块名称
version:当前模块的版本
scope:依赖的范围

groupid+artifactId+version连起来是一个路径;以连起来的字符串作为目录结构到仓库中查找
【坐标GAV】:   当 A jar 包用到了 B jar 包中的某些类时,A 就对 B 产生了依赖,这个时候我们就只需要使用 dependency 标签指定被依赖 jar 包的坐标就可以了。
大概原理就是,当我们添加依赖之后,他会去网上下载对应的jar包,下载到我们的本地仓库,下载下来的时候,依据的jav找到我们本地的jar包,进行引用。

【依赖的范围】:<scope>compile</scope>

依赖的范 围有几个可选值,我们用得到的是:compile、test、provided 三个。
1、compile:参与主程序、参与测试程序、参与打包
2、test:只运用于测试程序、不参与打包
比如junit我们只有在测试当中会用到,这个时候可以设置test
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.9</version>
    <scope>test</scope>
</dependency>
3、provided :参与主程序、参与测试程序、不参与打包
有些jar包我们容器就给我提供了,这个时候我们就需要设置provided
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

【依赖的传递性】:

A 依赖 B,B 依赖 C,A 能否使用 C 呢?那要看 B 依赖 C 的范围是不是 compile,如果是则可用,否则不可用。