• 手把手教你maven的安装与配置(windows)



    在这里插入图片描述

    提起Maven,相信大家并不陌生,对于一些java开发者,可能除了JDK,第二个要学的内容就是Maven了。今天,我们就踏上Maven的学习之路,当然第一篇,依然还是手把手系列,从安装与配置开始。

    📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
    📗本文收录于 Maven专栏 ,有需要者,可直接订阅专栏实时获取更新
    📘高质量专栏 云原生RabbitMQSpring全家桶GIT 等仍在更新,欢迎指导
    📙Zookeeper Redis kafka docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待


    一、Maven 是什么

    Maven 是一个基于项目对象模型 (POM) 定义项目的构建工具。它可以帮助开发人员管理项目的依赖关系、构建、文档描述信息管理等。通过 Maven,开发人员可以很方便地构建、打包、发布和部署 Java 应用程序。Maven 能够自动从互联网上下载依赖库,并自动部署到本地仓库中。使用 Maven,开发人员无需手动去配置、管理项目的依赖关系,只需要在 POM 文件中声明依赖关系,Maven 就能自动帮助我们管理依赖

    二、Maven 的安装

    1. 下载

    访问 Maven 的官网:https://maven.apache.org/download.cgi,进入下载页面。注意,下载的为二进制压缩文档。

    需要注意的是。如果你使用了IDEA,并且想在IDEA中使用Maven,那么推荐根据IDEA的版本来决定使用的Maven版本,其对应关系如下

    • IDEA 2022 兼容maven 3.8.1及之前的所用版本
    • IDEA 2021 兼容maven 3.8.1及之前的所用版本
    • IDEA 2020 兼容Maven 3.6.3及之前所有版本
    • IDEA 2018 兼容Maven3.6.1及之前所有版本

    当然,官网页面打不开的同学,笔者这边也给大家准备了3.9.4版本的包,点击链接即可: 3.9.4版本 。早先3.6.3版本的包也有:3.6.3版本

    在这里插入图片描述

    2. 环境配置

    在我们将上述压缩包解压后,形成如下的目录

    在这里插入图片描述
    但是因为这次是压缩包解压,而没有贴心的安装程序,所以我们只能手动去设置一下环境变量了,环境变量的设置也是老套路了,右键”计算机“ 进入属性

    在这里插入图片描述
    按步骤找到环境变量设置选项,点进去
    在这里插入图片描述

    把Maven的bin路径设定到环境变量 Path

    在这里插入图片描述

    然后以mvn --version来查看,能正确输出版本号,就代表我们成功安装了Maven

    在这里插入图片描述


    三、Maven 的配置文件

    Maven安装好后自带了一个配置文件 setting.xml ,用于配置Maven的全局选项、仓库等信息。而且,Maven的配置分为全局配置用户配置,全局配置就是Maven安装路径下的conf/setting.xml,用户配置是指在用户主目录下的.m2 文件夹内。所以需要注意,用户配置会覆盖全局配置,因此在进行用户配置时,要特别注意不要覆盖全局配置的设置

    在这里插入图片描述
    我们来分析下,这份配置文件的结构

    1. 本地仓库

    定义本地仓库的位置,Maven会将下载的依赖项文件保存在该位置。

    <settings>
        <localRepository>C:\Users\username\.m2\repositorylocalRepository>
    settings>
    
    • 1
    • 2
    • 3

    2. 远程仓库

    定义用于查找依赖项的远程仓库,远程仓库可以是中央仓库私有仓库镜像仓库,这里我们做一点简单的解释

    • 中央仓库
      中央仓库是由 Maven 社区提供的仓库,我们可以说是官方仓库。包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息。中央仓库不需要进行额外的配置
    • 私有仓库
      开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件,一般由公司内部搭建。
    • 镜像仓库
      镜像仓库是指在Maven中心仓库之外,由第三方机构或个人自行搭建的仓库,一般情况是完全复制了中心仓库中的内容,并提供了更快的下载速度和更好的稳定性。
    <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>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    这里有几点需要说明下:

    1. 私有仓库建议配置在内,这样可以将其作为一个特定环境的配置,并且在使用时可以更加方便地调用。如果您需要在全局使用私有仓库,也可以将其配置在标签内。
    2. 如果同时配置中央仓库、镜像仓库和私有仓库,它们使用的优先级从高到底依次为私有仓库 - 镜像仓库 - 中央仓库,也就是说私有仓库是最优先的选择
    3. 标签用于指定要镜像的仓库ID,设置为 *,表示所有仓库都使用镜像,设置为central代表只有中央仓库使用该镜像。

    3. 代理服务器

    定义用于访问远程仓库的代理服务器,包括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>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4. 服务器认证

    定义访问需要认证的远程仓库的用户名和密码。

    <settings>
        <servers>
            <server>
                <id>server1id>
                <username>usernameusername>
                <password>passwordpassword>
            server>
        servers>
    settings>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5. 其他选项

    除了上面的内容,还可以配置其他选项,如超时时间、调试级别等。

    <settings>
        <configuration>
            <timeout>30000timeout>
            <logLevel>debuglogLevel>
        configuration>
    settings>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    默认情况下,Maven的logLevel是INFO级别。通过指定logLevel,可以控制Maven在执行构建时输出日志的详细程度,从而方便调试和排查错误

    6. 配置示例

    对于大部分同学来说,所用到的包基本都在中央仓库中,因此只需要针对中央仓库设置一个镜像即可,一般常用的就是阿里云镜像,那么整体的文件配置就如下:

    
    <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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    四、对接IDEA

    当我们设置完Maven的相关配置,如果是使用Idea的同学,还需要在Idea中进行相关配置。我们设定完以后,就可以在IDEA中进行Maven的相关操作。

    在这里插入图片描述

    注意,此处我们勾选了 Override ,这将使得此处的Maven设置拥有最高优先级,一般保持这个和外层配置一致即可。

  • 相关阅读:
    LCR 027.回文链表
    springboot 中如何正确的在异步线程中使用request
    【项目】数据库事务与MQ发送一致性
    cloudwu/coroutine 源码分析
    科幻理论的未来也在于发现新的逻辑体系
    vue项目中实际构建echarts拓扑关系图业务
    前端内容记录之常用置标
    在 kubernetes 环境中实现 gRPC 负载均衡
    03.OpenWrt-系统固件烧录
    ceph 删除 osd 重新添加 osd down 重建
  • 原文地址:https://blog.csdn.net/u011709538/article/details/132758707