在学习过程中,往往有些时间是用于搭建环境,安装软件的。以往,第一次安装一个环境的历程是:
查找安装包 => 查找安装教程 =>安装成功,使用 || 安装失败,寻找解决方案,或者重新安装 ,直到正常使用
在以前,这个过程可以说是常态。
但安装了许多环境之后,慢慢体会到——搭建一个环境,最重要的是明白这个环境是如何工作的。当明白了这个环境的这些内容之后,就会发现,其实好多配置都是基于这些内容而驱动的。
最近,由于想要构建一个新的项目工作空间,专门用于一个项目的开发。但发现了以前的Maven环境的配置一团糟,仅仅只是可以维持正常使用。
所以,趁着一次机会,重新对Maven的配置,同时对重新配置的过程进行记录。
maven(一) maven到底是个啥玩意~
刚学习Java时,引用Jar包都是从网上各种找Jar资源,往往不是Jar不对,就是Jar版本太低,花费了很多时间才找到正确的Jar。
然后到后来,多人共同开发一个项目时,所用的Jar也是差不多的,但需要各种纷发。
后面接触到Maven之后,才发现许多工作其实是可以通过Maven解决的。
Maven是一个项目管理工具,可以对Java项目进行构建,依赖管理。简单地来说,Maven可以帮我们完成上面工作,让我们专注于开发。
如果对Python了解的话,其实Maven于Java就相当于pip于Python
如果对JS了解的话,其实Maven于Java就相当于npm于node.js
其实,可以将Maven理解为一个仓库,Maven也有仓库的概念
中央仓库:Maven的真正中央仓库,包含所有Jar(其实更确切应该为第三方依赖)。默认情况下。
本地仓库:Maven的本地仓库,包含你所需要的Jar。默认情况下。
当开发时,使用Maven引用一个Jar时,maven会到本地仓库进行查找,如果存在,则直接使用即可;
如果不存在,则会前往中央仓库进行下载,下载到本地仓库,再使用。
当下一个项目需要时,将会重复以上步骤,而本地仓库已存在,就不需要再到中央仓库进行下载了。
其实有个原则—开发中,当自身实力不允许时,尽量不要重复造轮子,特别是造“劣质”的轮子,我们可以使用一些大佬造好的优秀的轮子。
这里所说的轮子就是Jar。当我们要造车子的时候,需要使用大佬造好的轮子。首先看看本地仓库里有没有轮子,如果有,就使用;如果没有则去总仓库去拿,拿到后放到本地仓库,等待使用。
由于版本不断更新,所以不提供指定版本的下载链接,可以前往下面地址下载最新版本
http://maven.apache.org/download.cgi
如果在内地的话,下载速度慢的话,可以更改这个为清华镜像:https://mirrors.tuna.tsinghua.edu.cn/apache
建议在文件系统中创建一个指定的软件存储文件夹,方便后面的配置环境,例如:
D:/soft/maven/maven-{版本号} //如下 D:/soft/maven/maven-3.6.3如果是Window版本的话,且希望使用dos窗口认识Maven命令,例如 mvn -version 查看版本号等命令。
那么就需要设置环境变量
一般环境变量都是键值对形式
# 两种方式任选一个 # 两个环境变量方式(推荐) # 在 系统变量 中 创建一个 maven_home maven_home = D:\soft_path\maven\apache-maven-3.6.3 # 在系统变量 中的 Path 中 添加 一个值 %MAVEN_HOME%\bin # 一个环境变量方式 # 直接在系统变量中的Path中添加maven的位置 D:\soft_path\maven\apache-maven-3.6.3\bin
在dos窗口,输入 mvn -version,如果显示版本信息,则表示环境变量配置成功
其实通过上面可以知道,环境变量的作用是将软件的目录作为全局目录
在任何地方都可以识别相应的命令。
如果不配置环境变量的话,就必须在maven/bin目录下输入maven命令才可以识别,否则就不会识别。
Linux也一样,只不过是在etc/profile进行配置
由于maven的中央仓库的默认镜像是https://repo1.maven.org/maven2/是在国外,所以每一次访问中央仓库拿轮子的时候,所需要的时间都非常的久。正如上面的下载更改为清华镜像后,下载速度变快一样,
也可以通过修改配置,将maven的默认镜像更换为阿里云镜像。
阿里云相关镜像如下:https://help.aliyun.com/document_detail/102512.html,可以查看更多相关介绍
打开maven的安装路径下的conf/setting.xml文件,在进行添加
<mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> <!--新增内容--> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>aliyunMaven</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>maven的本地仓库默认是Default: ${user.home}/.m2/repository,如果不知道的话,有些时候需要查看源码,自下载等等操作,就很麻烦,而且不容易进行管理。
所以,创建一个固定的本地仓库非常重要。
常见本地仓库文件夹:xxx/xxx/repository
在setting文件中进行配置
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> <!--添加以下内容--> <localRepository>本地仓库地址</localRepository> <!--例如--> <localRepository>D:\soft_path\maven\maven3.6.3_repository</localRepository>window => preferences => maven
配置maven
配置本地仓库
虽然我比较喜欢使用STS,因为是免费的,且操作基本和eclipse差不多,但是相比STS,IDEA的使用更加广泛。
所以这里,添加以下IDEA的配置
file => setting
一般maven,spring,spring boot等项目可以通过pom.xml文件使用maven仓库
可以到maven repository
https://mvnrepository.com/
进行搜索,在引用
例如想要使用spring boot下的mybatis,可以如下操作
如果遇到什么问题,可以评论,或者私信,一起解决。