Maven

1.Maven是什么?

在刚学maven时,我就把maven当作一个引入jar包的工具而已,以前是自己下载jar包,现在是只用在pom文件中填写相应的坐标就可以了。除此之外当我们需要使用的jar包依赖于另一个jar包时,maven会自动帮我们引入适用的版本。这就避免了我们自己下jar包,然后版本不匹配的问题。除此之外,我还模糊的知道一些maven的聚合和继承,之后在接手项目的时候还是吃了的大亏。于是打算重新学习一下maven。

2.Maven的优势

使用传统Web项目构建的CRM项目如下
在这里插入图片描述
同样的项目,如果我们使用Maven工程来构建,会发现总体上工程的大小会少很多。如下图:
在这里插入图片描述
通过上面两张图的比较我们可以直观的看出Maven工程的文件确实是很小,我们粗布可以判断出Maven工程没有导入我们需要的jar包,那Maven工程所需要的jar包放到哪里了呢,接下来我们一起来探索一下
在这里插入图片描述
通过分析发现:maven工程中不直接将jar包导入到工程中,而是通过在pom.xml文件中添加所需jar包的坐标,这样就很好的避免了jar直接引入进来,在需要用到jar包的时候,只要查找pom.xml文件,再通过pom.xml文件中的坐标,到一个专门用于”存放jar包的仓库”(maven仓库)中根据坐标从而找到这些jar包,再把这些jar包拿去运行。
那么问题来了
第一:”存放jar包的仓库”长什么样?
第二:通过读取pom.xml 文件中的坐标,再到仓库中找到jar包,会不会很慢?从而导致这种方式不可行!
第一个问题:存放jar包的仓库长什么样,这一点我们后期会分析仓库的分类,也会带大家去看我们的本地的仓库长什么样。
第二个问题:通过pom.xml文件配置要引入的jar包的坐标,再读取坐标并到仓库中加载jar包,这样我们就可以直接使用jar包了,为了解决这个过程中速度慢的问题,maven中也有索引的概念,通过建立索引,可以大大提高加载jar包的速度,使得我们认为jar包基本跟放在本地的工程文件中再读取出来的速度是一样的。这个过程就好比我们查阅字典时,为了能够加快查找到内容,书前面的目录就好比是索引,有了这个目录我们就可以方便找到内容了,一样的在maven仓库中有了索引我们就可以认为可以快速找到jar包。

除此之外,Maven还为我们提供了一键构建项目功能。
我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。
什么是构建?
指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给maven进行管理,这个过程称为构建。
一键构建
指的是整个构建过程,使用maven一个命令可以轻松完成整个工作。

3. Maven的使用

3.1maven的安装及配置

首先我们需要到官网下载最新的Maven管理工具,下载流程略过…
我们直接进入正题,我们在官网下载后解压后的目录如下:
在这里插入图片描述
注意:将Maven解压到一个没有中文没有空格的路径下,比如C:\Program Files\my_java下面。
改文件的目录结构如下图:
在这里插入图片描述
bin:存放了maven的命令,比如我们前面用到的mvn tomcat:run
boot:存放了一些maven本身的引导程序,如类加载器等
conf:存放了maven的一些配置文件,如setting.xml文件(后面经常使用)
lib:存放了maven本身运行所需的一些jar包
至此我们的maven软件就可以使用了,前提是你的电脑上之前已经安装并配置好了JDK。
接下来就是Maven及JDK的配置
使用Maven的前提是你电脑必须要安装java环境(即安装JDK)
我安装的是JDK-12.0.2(JDK版本1.9以上的在使用Maven会出现几个小问题,下一章会为大家指出),如下图:
在这里插入图片描述
配置 MAVEN_HOME ,变量值就是你的maven安装 的路径(bin目录之前一级目录)
在这里插入图片描述
上面配置了我们的Maven软件,注意这个目录就是之前你解压maven的压缩文件包在的的目录,最好不要有中文和空格。
这样就完成的Maven软件的安装了。
接下来我们测试一下:
快捷键win+R打开cmd命令,输入mvn –v命令,如下图:
在这里插入图片描述
我们发现maven的版本,及jdk的版本符合要求,这样我们的maven软件安装就成功了。

3.2Maven仓库

仓库可以理解为存放jar包的地方。

仓库的分类
本地仓库:当前电脑上的部署的仓库目录,为当前电脑上的所有Maven工程服务
远程仓库:

(1) 私服: 搭建在局域网环境中,为局域网范围内的所有Maven工程服务
(2) 中央仓库: 架设在Internet上,为全世界范围内所有的Maven工程服务。
(3) 中央仓库镜像: 为了分担中央仓库的流量,提升用户的访问速度。
使用properties标签内自定义标签统一声明版本号

4.Maven的常用命令

4.1.1 compile

compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
对主程序是否有效:有效
对测试程序是否有效: 有效
是否参与打包: 参与
是否参与部署: 参与
典型例子: Spring-core

4.1.2 test

test是maven工程的测试命令 mvn test,会执行src/test/java下的单元测试类。
对主程序是否有效: 无效
对测试程序是否有效: 有效
是否参与打包: 不参与
是否参与部署: 不参与
典型例子: junit

4.1.3 clean

clean是maven工程的清理命令,执行 clean会删除target目录及内容。

4.1.4 package

package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。

4.1.5 install

install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。

注意:当后面的命令执行时,前面的操作过程也会自动执行。

5.maven引用本地jar包的几种方式

方式一:build path
在这里插入图片描述方式二、通过maven-install-plugin打包到本地仓库里

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-install-plugin</artifactId>
	<executions>
		<execution>
			<id>install-vim25</id>
			<phase>initialize</phase>
			<goals>
				<goal>install-file</goal>
			</goals>
			<configuration>
				<packaging>jar</packaging>
				<groupId>com.vmware</groupId>
				<artifactId>vim25</artifactId>
				<version>6.5.3</version>
				<file>./lib/vim25.jar</file>
			</configuration>
		</execution>
	</executions>
</plugin>

打包之后,可以通过dependency正常引入:

<dependency>
	<groupId>com.vmware</groupId>
	<artifactId>vim25</artifactId>
	<version>6.5.3</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值