星语课程网
Maven使用指南
来源:本站编辑
2024-10-26 12:55
186
### 一、Maven的来源 Maven是一个包管理工具,在没有它之前,我们做一个Java项目,需要第三方jar包时,我们需有手动去网上下载下来,人后手动加到项目里;操作麻烦,如果人家版本更新了,或者我们的项目需要更新某个模块,导致之前加入的依赖包,又需要重新下载最新版本,重新加入到项目里。操作麻烦;因此当年的程序员大佬们开发了一款项目自动管理工具——Maven。  ### 二、Maven的核心内容简述 Maven是一款服务于Java平台的自动化构建工具。Maven 作为 Java 项目管理工具,它不仅可以用作jar包管理,还有许多的插件,可以支持整个项目的开发、打包、测试及部署等一系列行为。 * Maven本质上是一个项目管理工具,他的理念是:将项目开发和管理的过程抽象成一个模型——项目对象模型(POM)  **上图是Maven的工作流程图;图中的一些名词概念如下:** #### **1.配置文件pom.xml:** * pom.xml 是Maven工程中的核心配置文件,其地位相当于web项目中的web.xml配置文件,与项目构建过程相关的一切设置都在这个文件中进行配置。 * Maven在工作时,就是通过pom.xml配置文件中所记录的项目的各种信息,并结合自身的各种插件,来达到对项目进行管理和更新。 #### **2.仓库(用来存储资源、包含各种jar包):** * **本地仓库**:自己电脑上存储资源的仓库,同时连接远程仓库,可以从远程仓库上获取资源。 远程仓库:又分为私服和中央仓库 * **私服**:一般是公司或部门架设在当前局域网下的仓库,介于本地与中央之间,为当前局域网范围内的所有Maven工程服务(为本地仓库提供jar包)。 * **中央仓库**:Maven公司团队所管理的服务器,架设在Internet上,为全世界的所有Maven工程服务,基本上存储着99%的jar包。 * **中央仓库的镜像**:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,更快响应用户请求。  #### **3、坐标(Maven中坐标用于描述仓库中资源的位置)** (1)数学中的坐标(x,y,z)可以确定一个点的位置 (2)Maven的坐标:使用下面三个量在仓库中可以唯一定位一个jar包 **① groupid:**当前Maven项目的域名反过来(包名);例:com.baidu >
**com.baidu****.maven\_project**
**② artifactid:**Maven项目的名称 >
**Hello**
**③ version:**当前项目版本号;(1.0-SNAPSHOT表示项目还没上线的快照版) >
**1.0-SNAPSHOT**
#### 4.Maven的作用: * 项目构建:Maven为我们提供标准的、跨平台的自动化项目构建方式; (之前我们创建项目,需要确定项目的目录结构,比如src 存放Java源码, resources存放配置文件,webContent放前端页面,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦。Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.) * 依赖管理:通过Maven,可以方便快捷的项目依赖的资源(jar包),避免资源的版本冲突问题。 * 统一开发结构:提供了一套标准的、统一的项目结构(自从用了Maven写Java项目,大家都按照它建议的项目结构来写) ### 三、Maven的下载、安装与配置(windows版本) #### 1.下载与安装 ①首先去Maven官网:[Maven – Download Apache Maven](http://maven.apache.org/download.cgi "Maven – Download Apache Maven")  ②当前Maven最新版本为3.9.8,下载完后是一个压缩包;Maven是绿色软件,解压及安装; 注意:我们要找一个没有中文没有空格的路径下进行解压安装。例如我的是在D:\\Program Files\\Maven\\apache-maven\-3.9.8 ③解压完的Maven目录如下:  * **bin文件夹:**该文件中包含的是mvn的运行脚本,我们在命令行中使用mvn语言实际上就是在调用该文件夹中的脚本,比如mvn -v。这里面的脚本分为mvn和mvn.bat。前者是用在Unix系统,后者是用在windows系统上。 * **boot文件夹:**该目录只包含一个文件:plexus-classworlds-XXX.jar。该jar文件是一个类加载器框架,相对于默认的Java类加载器,他提供了更丰富的语法以方便配置。Maven使用这个框架来加载自己的类库。 * **conf文件夹:**这里面存放的是Maven的配置文件,其中有一个非常重要的文件是setting.xml,修改这个文件可以对Maven进行全局的修改。(后面会用到) * **lib文件夹:**这里面包含了Maven本身运行时所需要的所有Java类库(jar包)。这里面算是真正的Maven代码,是Maven的核心部分。Maven本身是分模块开发的,所以用户可以看到诸如maven-core-3.1.jar、maven-model-3.1.jar之类的文件。另外,这个文件夹还含有一些Maven用到的第三方依赖。 #### 2.配置Maven的环境变量 ①在windows搜索框搜索环境变量 ——>打开编辑系统环境变量——>点击环境变量(N)——>点击新建(N)    **③**新建一个MAVEN\_HOME变量   ⑥点击新建后;在输入框中输入%MAVEN\_HOME%bin ;表示将刚刚创建的MAVEN\_HOME环境变量添加到系统Path下;一定注意前后加上“%”,结尾加上bin(指定到bin目录下) ⑦配置完上面的一切后;最后win+R打开命令窗口:输入mvn -v检查Maven是否安装且配置成功,若出现下图样子,恭喜你,成功安装上了Maven。  #### 3.配置Maven的本地仓库(本地仓库就是用来存储jar包的一个文件夹) ①maven的本地仓库默认是在 C盘 .m2 目录下,但是将本地仓库放在C盘会占用c盘空间,所以这里要重新配置一下. ②打开maven的安装目录中,进入 conf文件夹, 找到 settings.xml 文件, 上文有提到过,这个文件是Maven的一个重要的配置文件,修改这个文件可以对Maven进行全局的修改。   ③用你的一个可靠的IDE打开setting文件夹,例如VScode或IDEA,这里我用VScode打开的: 
D:\你自己指定的一个目录
XXXXXX
之间XXXXX表示你自己指定的本地仓库的路径(我是在D盘中创建了一个MVN\_repository文件夹来当做我的本地仓库) #### 4\. 配置Maven的镜像远程仓库 **(若项目所需jar包在本地仓库中没找到,默认从远程仓库中下载)** ①由于Maven默认的远程仓库隶属于国外,下载jar包非常的慢,因此我们通常都是用自己国内的镜像远程仓库;这里推荐首选阿里元的远程仓库: ```xml
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
``` ②还是打开setting.xml文件,找到
标签,将上述代码复制进去即可;如下图所示:  (到此。恭喜你,Maven的下载与环境配置都已完成🐶) ### 四、Maven的常用命令 * **mvn clean:**清理(会删除原来编译和测试的目录,即 target目录,但是已经 install到仓库里的包不会删除) * **mvn compile:**编译主程序 (会在当前目录下生成一个 target里边存放编译主程序之后生成的字节码文件) * **mvn test-compile:**编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件) * **mvn test:**执行测试(会生成一个目录 surefire- reports,保存测试结果) * **mvn package:**打包主程序(会编译、编译测试、测试、并且按照pom.xml配置把主程序打包生成jar包或者war包 * **mvn install:**安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中) * **mvn deploy:**部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。还会自动把项目部署到web容器中) ### 五、Maven常用远程仓库推荐 **1.几个常用国外的中央仓库地址** 1. http://www.sonatype.org/nexus/(一款强大的Maven仓库管理网站) 2. http://mvnrepository.com/ (一款常用的Maven仓库网站) 3. http://repo1.maven.org/maven2 (Maven官方中央仓库) **2. Maven 镜像仓库地址** ①阿里中央仓库(首选推荐) ```xml
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
``` ② camunda.com 中央仓库 ```xml
activiti-repos2
Activiti Repository 2
https://app.camunda.com/nexus/content/groups/public
``` ③spring.io 中央仓库 ```xml
springsource-repos
SpringSource Repository
http://repo.spring.io/release/
``` ④maven.apache.org 中央仓库 ```xml
central-repos
Central Repository
http://repo.maven.apache.org/maven2
```
点赞
热门评论
最新评论
匿名用户
+1
-1
·
回复TA
暂无热门评论
相关推荐
阅读更多资讯
热门评论 最新评论
暂无热门评论