Maven 详解及常用命令

本文详细介绍了 Maven,一个用于 Java 项目构建、依赖管理和信息管理的工具。内容涵盖 Maven 的基本概念、目录结构、安装步骤、settings.xml 文件的配置、常用命令以及pom.xml的配置说明。通过 Maven,可以简化项目构建过程,并通过中央仓库管理依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Maven 介绍

mvn 中央仓库: https://mvnrepository.com/

1.1、Maven 是什么?

(1) Maven 是主要服务基于java平台的项目构建,依赖管理和项目信息管理的一个工具。即 Maven 是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model,POM文件) 。

(2)项目构建包括清理,编译,测试到生成测试报告,再到打包和部署;依赖管理是maven借助于坐标来实现的。

(3)maven是跨平台的,可以在windows,linux和mac OS等系统上运行。

查询开源公共依赖jar : https://mvnrepository.com/

1.2、Maven 目录结构

(1)bin:maven运行脚本,命令。
(2)boot:包含plexus-classworlds-2.2.3.jar (plexus-classworlds是一个类加载器框架,相对于java 默认类加载器,他提供了更丰富的语法以方便配置,maven使用该框架加载自己的类库)。
(3)conf:配置文件 setting.xml,修改该文件就可以在机器上全局的制定maven的行为。但一般情况下,更倾向于复制该文件到~(用户目录)/.m2/目录下,然后修改该文件,在用户范围内制定maven的行为。
(4)lib:包含maven运行时所需要的java类库,包括第三方的依赖类库。
(5)LICENSE.txt:记录了maven使用该软件的许可证。
(6)NOTICE.txt:记录了maven包含的第三方软件。
(7)README.txt:记录了maven的简要介绍。

1.3、Maven 的项目结构

(1)项目骨架:项目的根目录下方pom.xml
(2)项目主代码:maven认为项目的主代码是位于src/main/java目录下的,所以通常我们会在此目录下创建文件,比如…/java/com/shuyun/myweb/hello/hello.java,该java类的包名是com.shuyun.myweb.hello
(3)资源文件:maven的资源文件位于src/main/resources目录下
(4)测试文件:maven默认的测试代码目录src/test/java目录
在这里插入图片描述

二、Maven 的安装

  • 第一步,官网下在地址 http://maven.apache.org/download.cgi

  • 第二步,解压文件包:apache-maven-3.5.2-bin.zip是压缩包,解压到安装路径即可。

  • 第三步,配置环境变量,类似jdk环境配置

    1、创建M2_HOME环境变量,指向maven的安装目录。
    2、并将%M2_HOME%\bin追加到PATH路径中。
    3、调试是否安装成功,在cmd中输入 mvn -version / mvn -v

  • 第四步,将本地仓库配置到指定路径

    (*可以不进行配置,默认在C盘 : C:\Users\hawin.m2\repository)
    在maven解压文件中,conf目录中修改settings.xml文件(D:\maven-3.5.2\conf\settings.xml)。可以添加新的仓库路径
    <localRepository>D:\maven-3.5.2\repository</localRepository>

  • 第五步,配置了中央仓库的镜像(换成了阿里的,比较稳定)
    阿里云 官方指导文档 https://maven.aliyun.com/mvn/guide

    settings.xml 文件中,在mirrors标签中添加子标签如下:

    <mirrors> ...</mirrors>
    <mirror>
    	<id>nexus-aliyun</id>
    	<name>nexus-aliyun</name>
    	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
    	<mirrorOf>central</mirrorOf>
    </mirror>
    <!-- 下面的新的地址-->
    <mirror>  
       <id>nexus-aliyun</id>  
      <mirrorOf>central</mirrorOf>    
      <name>Nexus aliyun</name>  
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
     <!--  阿里云 官方指导文档 https://maven.aliyun.com/mvn/guide -->
    <mirror>
    	<!-- 这个 ID 是用于 mirrorOf 匹配, 自定义,但是 mirrors 是唯一的-->
    	  <id>aliyunmaven</id> 
    	  <!-- 这个标签里面放置的是要被镜像的Repository ID -->
    	  <mirrorOf>*</mirrorOf>
    	  <!-- 这个 name 也是自定义仓库名称 -->
    	  <name>阿里云公共仓库</name>
    	  <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    

Mirror

mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。

<mirrorOf>*</mirrorOf> 
匹配所有仓库请求,即将所有的仓库请求都转到该镜像上
<mirrorOf>repo1,repo2</mirrorOf> 
将仓库repo1和repo2的请求转到该镜像上,使用逗号分隔多个远程仓库。 
<mirrorOf>*,!repo1</miiroOf> 
匹配所有仓库请求,repo1除外,使用感叹号将仓库从匹配中排除。
  
<!--两个可用的mirror站点-->
	 <!-- 阿里云的镜像站(首推,新站,速度暴快)-->
	 <mirror>
		<id>nexus-aliyun</id>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
		<mirrorOf>central</mirrorOf> 
	 </mirror>
	 <!-- 剩下就是国外的了,maven官方运维的2号仓库 -->
	<!-- <mirror> 
		<id>repo2</id> 
		<name>Mirror from Maven Repo2</name> 
		<url>http://repo2.maven.org/maven2/</url> 
		<mirrorOf>central</mirrorOf> 
	</mirror> -->
	<!-- maven在UK架设的仓库(有时候速度会比官方2号仓库快) -->
	<!-- <mirror> 
		<id>ui</id> 
		<name>Mirror from UK</name> 
		<url>http://uk.maven.org/maven2/</url> 
		<mirrorOf>central</mirrorOf> 
	</mirror> -->
	<!-- JBoss的仓库 -->
	<!-- <mirror> 
		<id>jboss-public-repository-group</id> 
		<mirrorOf>central</mirrorOf> 
		<name>JBoss Public Repository Group</name> 
		<url>http://repository.jboss.org/nexus/content/groups/public</url> 
	</mirror> -->

三、Maven 的 settings.xml 说明

参考官网:http://maven.apache.org/guides/mini/guide-mirror-settings.html

#  1. 声明规范
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

# 2. localRepository 本地仓库配置
 <!-- 本地仓库的路径。默认值为${user.home}/.m2/repository。 -->
<localRepository
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值