Maven介绍
Maven基础
Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。
Maven介绍
-
一个使用Maven管理的普通的Java项目,它的目录结构默认如下:
存放Java源码的目录是src/main/java
,存放资源文件的目录是src/main/resources
,存放测试源码的目录是src/test/java
,存放测试资源的目录是src/test/resources
,最后,所有编译、打包生成的文件都放在target
目录里。
依赖管理
-
Maven解决了依赖管理问题。例如,我们的项目依赖
abc
这个jar包,而abc
又依赖xyz
这个jar包: 当我们声明了
abc
的依赖时,Maven自动把abc
和xyz
都加入了我们的项目依赖,不需要我们自己去研究abc
是否需要依赖xyz
。 -
依赖关系
Maven定义了几种依赖关系,分别是
compile
、test
、runtime
和provided
:scope 说明 示例 compile 编译时需要用到该jar包(默认) commons-logging test 编译Test时需要用到该jar包 junit runtime 编译时不需要,但运行时需要用到 mysql provided 编译时需要用到,但运行时由JDK或某个服务器提供 servlet-api -
唯一ID
对于某个依赖,Maven只需要3个变量即可唯一确定某个jar包:
- groupId:属于组织的名称,类似Java的包名;
- artifactId:该jar包自身的名称,类似Java的类名;
- version:该jar包的版本。
-
Maven镜像
中国区用户可以使用阿里云提供的Maven镜像仓库。使用Maven镜像仓库需要一个配置,在用户主目录下进入
.m2
目录,创建一个settings.xml
配置文件,内容如下:1
2
3
4
5
6
7
8
9
10
11<settings>
<mirrors>
<mirror>
<id>aliyun</id>
<name>aliyun</name>
<mirrorOf>central</mirrorOf>
<!-- 国内推荐阿里云的Maven镜像 -->
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
</mirrors>
</settings> -
搜索第三方组件
最后一个问题:如果我们要引用一个第三方组件,比如
okhttp
,如何确切地获得它的groupId
、artifactId
和version
?方法是通过search.maven.org搜索关键字,找到对应的组件后,直接复制
小结
Maven通过解析依赖关系确定项目所需的jar包,常用的4种scope
有:compile
(默认),test
,runtime
和provided
;
Maven从中央仓库下载所需的jar包并缓存在本地;
可以通过镜像仓库加速下载。