我们来看一下上一章我们用eclipse创建的maven项目
我们可以看到,在Maven Dependencies库中有junit的jar包,并且,我们在src/main/test下新建单元测试,可以引用junitjar包中的类。这是因为在生成的pom配置文件中有依赖配置:
也就是maven自动帮我们添加了junit的jar包。我们先来思考一个问题,maven要去添加junit的jar包,它是如何识别这个jar包就是junit的jar包的,而不是spring的jar包?也就是它是怎么区分不同的jar包的?
我们说,平面上我们要区分不同的点,我们可以用横坐标、纵坐标来表示;空间区分不同的点,我们使用x、y、z三个元素来确定;生活中,区分不同的地址,可以用省市区县街道门牌号来表示。那么maven通过什么方式来区别不同的jar包呢?答案是坐标。
就好比地址是一个坐标,它的元素是省市区县等,而maven坐标的元素主要是groupId、artifactId、version。
groupId:maven项目隶属的实际项目,它是必须的。 maven项目与实际项目不一定是一对一,如Springframework。Springframework是实际的项目,但是低下又会分为spring-core、spring-bean等很多项目,每一个项目就是一个maven项目。groupId的命名方式一般为公司或组织名+实际项目名,与java包名的表示方式类似;
artifactId:maven项目(模块)的名称,它也是必须的,推荐使用实际项目名作为前缀,如spring-core;
version:项目当前所处版本,如1.0.1,它也是必须的;
packaging:项目打包方式,它是可选的,通常与生成的构件的扩展名对应,默认为jar
classifier:定义构建输出的附属构件,如javadoc等,不能直接定义
其中,groupId、artifactId、version是必须的,简称GAV。maven正是通过这三个元素来区分不同的jar包,比如junit,它的坐标可能如下:
<groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version>
不同版本的jar包通过不同的version体现,如:
<groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version>
我们已经知道maven通过坐标来区分不同的jar包,那么,maven如何帮我添加这些jar呢,maven会主动帮我们添加我们需要的jar包吗?答案是否定的,maven没那么智能,我要我们告诉它,我们需要什么jar包(依赖),然后它才会做相应的处理,这就是依赖。我们将在下一章详细阐述依赖的概念。
相关推荐
POM是Maven的核心概念之一,它通过`pom.xml`文件定义项目的坐标、依赖、构建路径等信息。这些信息构成了项目的元数据,指导Maven如何构建项目。 - **坐标**:包括`groupId`、`artifactId`、`version`等信息,用于...
Maven的核心概念包括: - **项目对象模型 (POM)**:POM是一个XML文件,包含了项目的配置信息,如依赖、构建目标、构建过程等。 - **依赖管理**:Maven自动处理项目依赖,通过POM中的`<dependencies>`标签声明项目所...
#### 第三章 依赖管理 Maven 的依赖管理机制简化了项目之间的依赖关系处理。它支持传递性依赖、排除特定依赖等功能。此外,Maven 还支持依赖范围的概念,如compile、test、provided等,这有助于控制哪些依赖会被...
**一、Maven核心概念** 1. **项目对象模型(POM)**:POM是Maven的核心,它是一个XML文件,包含了项目的基本信息,如项目名称、版本、描述、开发者信息、依赖关系、构建目标等。POM文件通常命名为pom.xml,位于项目...
Maven的仓库分为本地仓库和远程仓库,本地仓库用于存储本地项目依赖的jar包,远程仓库则是Maven中央仓库或其他第三方仓库,用于当本地仓库不存在相应依赖时,自动下载到本地。Maven的POM文件定义了项目的详细信息,...
Maven的核心概念包括:项目对象模型(POM)、构建生命周期、构建插件、仓库等。 - **POM**: Maven项目的核心是Project Object Model(项目对象模型),它是Maven配置文件(`pom.xml`)中的根元素。POM文件定义了项目...
### Maven的核心概念 1. **POM(Project Object Model)**:Maven的中心概念是POM,它是一个XML文件,包含了项目的基本信息、构建指令、依赖关系和其他配置。POM定义了项目的结构、构建过程和项目间的依赖关系。 2...
1. **Maven的核心概念**: - **POM (Project Object Model)**:Maven项目的基本配置文件,通常命名为pom.xml。它包含了项目信息、构建指令、依赖关系、插件配置等,使得Maven能理解并管理项目。 - **坐标...
远程仓库可以是公司内部的私有仓库,或者像 Nexus、Artifactory这样的第三方仓库;中央仓库是最主要的公共资源库,包含了大量公开发布的Java库。 **4. Maven生命周期** Maven生命周期包括清理、默认和站点三个阶段...
### Maven第三方仓库配置详解 #### 一、为什么使用Maven? 在现代的Java开发中,Maven已经成为构建管理和依赖管理的标准工具。它提供了一种强大的方法来管理项目的构建过程、依赖关系及其文档。 ##### 关于第三方...
在"apache-maven-3.2.2"这个版本中,我们找到了Maven的第三个主要版本的第二个小版本更新。这个版本可能包含了针对之前版本的一些bug修复、性能提升和新功能的引入。Maven 3.2.2是2014年发布的一个稳定版本,它提供...
1. **项目对象模型(POM)**:POM是Maven的核心概念,它是XML格式的配置文件,包含了项目的基本信息、依赖、构建指令等。开发者通过POM可以定义项目属性,如版本号、依赖库、构建目标等,实现项目的自动化构建。 2....
Maven的核心概念 - **项目对象模型 (POM)**: Maven的中心概念是POM,这是一个XML文件,包含了项目的基本信息、构建配置、依赖关系和其他元数据。POM使得Maven能够理解项目结构,执行构建任务,并自动下载所需的库...
- **依赖管理**:Maven通过依赖管理系统自动解析和下载项目所需的第三方库。 - **中央仓库的jar包下载**:Maven会自动从中央仓库下载所需的jar包到本地仓库。 - **上传本地仓库的jar包到中央仓库**:对于自定义开发...
- **远程仓库**:如果本地仓库没有找到依赖,Maven会尝试从远程仓库下载,常见的远程仓库包括Maven中央仓库和其他私有或第三方仓库。 了解并掌握这些Maven的基本概念和功能,对于Java开发者来说至关重要,因为它能...
### Maven核心概念 1. **项目对象模型(Project Object Model, POM)**: Maven的中心概念是POM,这是一个XML文件,包含了项目的配置信息,如项目属性、依赖、构建目标等。 2. **坐标(Coordinates)**: Maven使用...