提起Maven,相信大家并不陌生,对于一些java开发者,可能除了JDK,第二个要学的内容就是Maven了。今天,我们就踏上Maven的学习之路,当然第一篇,依然还是手把手系列,从安装与配置开始。
作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
本文收录于 Maven专栏 ,有需要者,可直接订阅专栏实时获取更新
高质量专栏 云原生、RabbitMQ、Spring全家桶、 GIT 等仍在更新,欢迎指导
Zookeeper Redis kafka docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待
Maven 是一个基于项目对象模型 (POM) 定义项目的构建工具。它可以帮助开发人员管理项目的依赖关系、构建、文档描述信息管理等。通过 Maven,开发人员可以很方便地构建、打包、发布和部署 Java 应用程序。Maven 能够自动从互联网上下载依赖库,并自动部署到本地仓库中。使用 Maven,开发人员无需手动去配置、管理项目的依赖关系,只需要在 POM 文件中声明依赖关系,Maven 就能自动帮助我们管理依赖
访问 Maven 的官网:https://maven.apache.org/download.cgi,进入下载页面。注意,下载的为二进制压缩文档。
需要注意的是。如果你使用了IDEA,并且想在IDEA中使用Maven,那么推荐根据IDEA的版本来决定使用的Maven版本,其对应关系如下
当然,官网页面打不开的同学,笔者这边也给大家准备了3.9.4版本的包,点击链接即可: 3.9.4版本 。早先3.6.3版本的包也有:3.6.3版本
在我们将上述压缩包解压后,形成如下的目录
但是因为这次是压缩包解压,而没有贴心的安装程序,所以我们只能手动去设置一下环境变量了,环境变量的设置也是老套路了,右键”计算机“ 进入属性
把Maven的bin路径设定到环境变量 Path
然后以mvn --version
来查看,能正确输出版本号,就代表我们成功安装了Maven
Maven安装好后自带了一个配置文件 setting.xml
,用于配置Maven的全局选项、仓库等信息。而且,Maven的配置分为全局配置
与用户配置
,全局配置就是Maven安装路径下的conf/setting.xml
,用户配置是指在用户主目录下的.m2
文件夹内。所以需要注意,用户配置会覆盖全局配置,因此在进行用户配置时,要特别注意不要覆盖全局配置的设置
定义本地仓库的位置,Maven会将下载的依赖项文件保存在该位置。
<settings>
<localRepository>C:\Users\username\.m2\repositorylocalRepository>
settings>
定义用于查找依赖项的远程仓库,远程仓库可以是中央仓库
、私有仓库
、镜像仓库
,这里我们做一点简单的解释
<settings>
<mirrors>
<mirror>
<id>aliyunmavenid>
<mirrorOf>centralmirrorOf>
<name>aliyun mavenname>
<url>https://maven.aliyun.com/repository/publicurl>
mirror>
mirrors>
<servers>
<server>
<id>my-repoid>
<username>your-usernameusername>
<password>your-passwordpassword>
server>
servers>
<profiles>
<profile>
<id>my-private-repoid>
<repositories>
<repository>
<id>my-repoid>
<url>http://my-repo-urlurl>.
<releases><enabled>trueenabled>releases>
<snapshots><enabled>falseenabled>snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>my-repoid>
<url>http://my-repo-urlurl>
pluginRepository>
pluginRepositories>
profile>
profiles>
<activeProfiles>
<activeProfile>my-private-repoactiveProfile>
activeProfiles>
settings>
这里有几点需要说明下:
内,这样可以将其作为一个特定环境的配置,并且在使用时可以更加方便地调用。如果您需要在全局使用私有仓库,也可以将其配置在
标签内。
标签用于指定要镜像的仓库ID,设置为 *,表示所有仓库都使用镜像,设置为central
代表只有中央仓库使用该镜像。定义用于访问远程仓库的代理服务器,包括HTTP代理和HTTPS代理等。
<settings>
<proxies>
<proxy>
<id>proxy1id>
<active>trueactive>
<protocol>httpprotocol>
<host>proxy.example.comhost>
<port>8080port>
<username>userusername>
<password>passwordpassword>
<nonProxyHosts>*.example.comnonProxyHosts>
proxy>
proxies>
settings>
定义访问需要认证的远程仓库
的用户名和密码。
<settings>
<servers>
<server>
<id>server1id>
<username>usernameusername>
<password>passwordpassword>
server>
servers>
settings>
除了上面的内容,还可以配置其他选项,如超时时间、调试级别等。
<settings>
<configuration>
<timeout>30000timeout>
<logLevel>debuglogLevel>
configuration>
settings>
默认情况下,Maven的logLevel是INFO级别。通过指定logLevel,可以控制Maven在执行构建时输出日志的详细程度,从而方便调试和排查错误
对于大部分同学来说,所用到的包基本都在中央仓库中,因此只需要针对中央仓库设置一个镜像即可,一般常用的就是阿里云镜像,那么整体的文件配置就如下:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
pluginGroups>
<proxies>
proxies>
<servers>
servers>
<localRepository>E:\mavenRepo\repositorylocalRepository>
<mirrors>
<mirror>
<id>alimavenid>
<mirrorOf>centralmirrorOf>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
mirror>
mirrors>
<profiles>
profiles>
settings>
当我们设置完Maven的相关配置,如果是使用Idea的同学,还需要在Idea中进行相关配置。我们设定完以后,就可以在IDEA中进行Maven的相关操作。
注意,此处我们勾选了 Override ,这将使得此处的Maven设置拥有最高优先级,一般保持这个和外层配置一致即可。