一、Maven是什么?
Maven是一款服务于Java平台的自动化构建工具。Maven 作为 Java 项目管理工具,它不仅可以用作包管理,还有许多的插件,可以支持整个项目的开发、打包、测试及部署等一系列行为。
传统工程我们直按把jar包放置在项目中, Maven工程真正的jar包放置在仓库中,项目中只用放置jar包的坐标。不使用Maven工具,当做 Java 项目需要第三方依赖包时,将别人打好的 Jar 包下载到本地,然后手动指定给项目。另外,比如版本控制,需要新版本怎么办,重新下载,重新指定,这个过程操作麻烦。而用了 Maven 之后,需要什么包,直接在 pom.xml 中添加几行 xml 代码(添加所依赖jar包的坐标),指定包名、版本等,就可以了,方便开发。
安装maven
1. Maven软件的下载
使用 Maven 管理工具,我们首先要到官网去下载它的安装软件。
目前最新版是 apache-maven-3.6.3 版本,点击进行下载即可
链接:百度网盘 请输入提取码
提取码:gnaf
. Maven软件的安装
Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下,比如:H:\software\maven 下面。 解压后目录结构如下:
Maven资源配置
使用别人的Maven项目(比如jar包)可以从三个地方去寻找:
1. 本地仓库
2. 中央仓库
3. 镜像仓库
本地仓库就是自己电脑上已经下载的jar包资源文件夹;
中央仓库就是一个网上的maven项目库,上面有数目繁多的别人共享出来的jar包、插件等,我们可以对自己安装的Maven进行配置,使它在使用时可以去指定的仓库进行jar包的查找。我们也可以登录这个全球中央仓库查找我们需要导入的jar包,查看坐标:http://mvnrepository.com/。Maven在它的根pom.xml中默认指定了这个仓库。
镜像仓库:有些情况下,我们不想到中央仓库去寻找,而是去特定的资源网站去寻找,这就是镜像仓库。
配置本地仓库、镜像仓库的操作如下:
————————————————
2. 本地仓库、镜像仓库配置:
添加依赖的方式有
(一): IDEA内搜索(本图文教程内):
方式1 : 提前下载好依赖
方式2: 边写代码边下载依赖
(二): 浏览器打开Maven仓库主页
搜索, 然后复制它的坐标粘贴到pom.xml啥的, 可自行百度哈
Maven 构建生命周期
Maven 构建生命周期定义了一个项目构建跟发布的过程。
一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:
使用maven教程
eclipse使用maven教程
0.什么是maven
1.maven下载与安装与配置
1.1下载
1.2安装
1.3配置环境变量
2.在eclipse中配置
2.1 m2eclipse安装
2.2配置eclipse
3创建一个maven项目
3.1项目的结构
3.2Eclipse中maven常用的命
3.3使用maven命令
1.maven下载与安装与配置
在最新的Eclipse中自带了maven,我们打开,Windows->Preferences,如果会出现下面的画面:
1.1下载
去maven的官网下载最新版的maven,此时的最新版本为3.5.2,下载地址如下:http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.zip。
解压到本地,安装Maven前,先确保已安装JDK,CMD下输入java -version验证是否已安装JDK,如下为我本机的JDK版本:
① 依赖的传递性
WebMavenDemo项目依赖JavaMavenService1 JavaMavenService1项目依赖JavaMavenService2
pom.xml文件配置好依赖关系后,必须首先mvn install后,依赖的jar包才能使用。
1、WebMavenDemo的pom.xml文件想能编译通过,JavaMavenService1必须mvn install
2、JavaMavenService的pom.xml文件想能编译通过,JavaMavenService2必须mvn install
传递性:
在Eclipse中,为JavaMavenService2中增加了一个spring-core.jar包后,会惊喜的发现依赖的两个项目都自动的增加了这个jar包
这就是依赖的传递性。
注意:非compile范围的依赖是不能传递的。
② 依赖版本的原则:
1、路径最短者优先原则
Service2的log4j的版本是1.2.7版本,Service1排除了此包的依赖,自己加了一个Log4j的1.2.9的版本,那么WebMavenDemo项目遵守路径最短优先原则,Log4j的版本和Sercive1的版本一致。
2、路径相同先声明优先原则
这种场景依赖关系发生了变化,WebMavenDemo项目依赖Sercive1和Service2,它俩是同一个路径,那么谁在WebMavenDemo的pom.xml中先声明的依赖就用谁的版本。