Maven的安装及其配置(图文详解)

本文详细介绍了Maven的安装、环境配置、仓库管理、IDE集成以及入门程序的创建和处理常见问题的方法。Maven作为项目管理工具,提供了一键构建功能,简化了依赖管理,通过标准的构建过程和自动化jar包下载,提高了开发效率。

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

1. Maven介绍

maven(专家的意思)是Apache下的一个纯java开发的免费开源项目,它是一个项目管理工具,可以跨平台使用,使用maven可以对java项目进行构建(构建就是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程)和依赖管理。

问:什么是一步构建?
答:maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。

传统项目的构建流程Maven项目的构建流程
1. 创建web项目1. 清理clean,清理class文件
2. 编写Java源代码和配置文件2. 编译compile,将java文件编译成class文件
3. 将源代码编译成字节码3. 测试test,测试代码正确性
4. Junit单元测试4. 打包package,java项目打jar包,web项目打war包
5. 将web项目打成war包部署到服务器上5. 部署install,项目自动部署到maven仓库中

tips:Maven是将项目构建的过程进行标准化,每个阶段使用一个命令完成,而且可以一键构建,更简单,更快捷。
tips:Maven的1-5个命令中,每个命令的运行,都会先去依次运行它之前的所有命令。

问:什么是依赖管理?
答:maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。

依赖就是web工程对第三方jar包的依赖,依赖管理就是对项目所有依赖的jar包进行规范化管理。maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。

传统项目你需要手动导入第三方jar包到工程中,而手工拷贝jar包的问题是,不仅没有对jar包的版本统一管理,容易导致版本冲突,而且从网上找jar包非常不方便,有些jar找不到,还有就是大量jar包添加到工程中导致工程过大。

使用maven,你可以跳过那个令人头疼的搜寻,下载和搭配jar包的过程,它只需要在pom.xml(maven工程的配置文件)中添加jar包的坐标,就可以自动从maven仓库中下载jar包。

maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便,下载jar包地址:https://mvnrepository.com/

2. 环境搭建

2.1 下载maven

http://maven.apache.org/download.cgi 下载maven3.3.9版本

点击 archives 下载过往版本
在这里插入图片描述

点击 binaries 下载
在这里插入图片描述

tips:source是源码,也可以一并下载下来。

点击apache-maven-3.3.9-bin.zip下载
在这里插入图片描述

目录结构

  • bin:mvn.bat(以run方式运行项目)、mvnDebug.bat(以debug方式运行项目)。
  • boot:maven运行需要的类加载器。
  • conf:settings.xml(maven工具的核心配置文件)。
  • lib:maven运行的依赖jar包。

2.2 环境搭建

使用maven,电脑上需安装java环境,安装JDK1.7+版本(需正确配置JAVA_HOME和系统变量下的path),然后再配置MAVEN_HOME。

1. 配置MAVEN_HOME为安装包根路径
在这里插入图片描述

2. 配置系统Path为%MAVEN_HOME%/bin;
在这里插入图片描述

3. 通过mvn -v命令检查maven是否安装成功
在这里插入图片描述

3. Maven仓库

maven的工作需要从仓库下载一些jar包,项目通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库(本地电脑的某个文件夹),当第二次需要此jar包时则不再从远程仓库下载,因此也可以直接将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

如果远程仓库没有你需要的jar包,则会去中央仓库查找,然后返回给远程仓库,远程仓库再返回给本地仓库。

本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包,优先从本地仓库查找(默认本地仓库位置在用户目录下的.m2/repository)。

远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。

中央仓库:maven软件中内置的一个远程仓库,地址为http://repo1.maven.org/maven2,它是中央仓库,服务于整个互联网,它由Maven团队自己维护,里而存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

3.1 配置本地仓库

新建一个repository文件夹,位置和取名随意,然后在MAVEN_HOME/conf/settings.xml文件中配置本地仓库位置。
在这里插入图片描述

3.2 下载基本插件

在cmd中,利用mvn help:system命令,来加载基本插件,需要联网状态,如果下载失败,可以在settings.xml文件中更改中央仓库路径,然后再放在仓库文件夹中一份,再执行命令,整个过程会比较慢,耐心等待。

<!-- 阿里云仓库 -->
<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

在这里插入图片描述

4. IDE配置

  • Maven配置:将Maven安装根目录配置到IDE中。
  • settings.xml配置:将Maven安装目录中的setting.xml文件引入到IDE中,以便IDE知道本地仓库位置和镜像。
  • Maven使用的JDK版本确认:Eclipse可以跳过这一步,因为Eclipse没有内置的JDK。
  • JDK参数配置:配置JDK运行参数,让JDK关联我们的Maven。
  • JDK编译版本确认:查看IDE编译版本是否正确。
  • 调出maven仓库视图,重构本地仓库索引。

将Maven安装根目录配置到IDE中:Eclipse中没有Maven4MyEclipse,而是叫做Maven。

指定settings.xml文件的位置
在这里插入图片描述

确定Maven使用的JDK版本确实为1.7,如果是Eclipse则可以跳过这一步骤(因为Eclipse没有内置的JDK)
在这里插入图片描述

指定JDK的Default VM arguments为:-Dmaven.multiModuleProjectDirectory=MAVEN_HOME
在这里插入图片描述

tips:注意这里请指定JDK的文件夹,而不要指定JRE的文件夹。

右键工程属性,查看是编译版本是否是1.7,如果不是,请换成最高编译版本。
在这里插入图片描述

Window -> Show View -> Maven Repositories:调出maven仓库视图
在这里插入图片描述

在maven仓库视图中找到自己的本地仓库,右键执行索引重构(Rebulid Index)
在这里插入图片描述

5. 入门程序

5.1 新建Maven项目

新建Maven项目,如果new列表中没有,选择Other,然后搜索Maven Project,点击Next
在这里插入图片描述

勾选Create a simple project,跳过模版。
在这里插入图片描述

填写项目信息
在这里插入图片描述

tips:GroupId是纵坐标,即项目打成包后的包名,请填写公司倒置域名。
tips:ArtifactId是横坐标,即项目名,请填写项目名。
tips:Version是当前项日版本号,snapshot为快照版本,release为正式发布版本。
tips:Packaging是打包方式,java项目选jar,web项目选war,模块项目选pom。 tips:Compiler
Level选最高,或者不选。 tips:Name和Description是命名和描述,可以不写。

使用maven创建的工程我们称它为maven工程,maven工程具有一定的结构规范,如下:
在这里插入图片描述
5.2 项目报错处理

第一步:新生成Maven项目的时候报错,因为webapp下结构补全,我们手动添加一个WEB-INF文件夹和web.xml文件,然后右键项目Maven-update Maven(勾选Force Update of Snapshots/Releases)。
在这里插入图片描述

第二步:更改Maven项目默认的JDK:Maven项目默认使用JDK1.5,我们可以右键buildpath来调整jdk版本,但是每次update我们的项目,它都会自动恢复到1.5的状态,所以我们使用一个插件maven-compiler-plugin,来强制要求maven使用的默认jdk版本,即需要在pom.xml中手动设置一下默认JDK版本为1.8,然后刷新项目。

<build><!--负责maven整体的环境配置-->
	<plugins><!--所有的maven插件都写在这里-->
		<plugin><!--插件标签-->
			<groupId>org.apache.maven.plugins</groupId><!--插件所在的包-->
			<artifactId>maven-compiler-plugin</artifactId><!--插件名-->
			<configuration><!--插件配置-->
				<source>1.8</source>
				<target>1.8</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
	</plugins>
</build>

5.3 servlet测试

5.3.1 添加servlet开发的jar包依赖

使用servlet开发,需要依赖两个jar包,servlet-api.jar和jsp-api.jar,我们可以直接在pom.xml中添加这两个依赖,注意调节provided范围。

<dependencies>
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>3.0</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>javax.servlet.jsp</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.1</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

scope 中除了provided之外,还有其余四个属性

compile默认值,编译,测试,运行时,此jar包都生效
provided已提供jar包,编译和测试时生效,运行时失效,防止和tomcat中的jar包冲突,如servlet-api.jar和jsp-api.jar
runtime运行时jar包,测试和运行时有效,一般驱动包要选择此项,如ojdbc14.jar
test只在测试时有效,如junit.jar包
system效果同于provided,基本不使用

如果你需要的依赖包在三大仓库中都没有,则你需要手动添加jar进库

  • 先将jar包放在maven的安装目录下(建议和bin文件夹同级)
  • 启动CMD,并且CD到我们的maven安装包的bin目录下
  • 执行代码如下:
mvn install:install-file -DgroupId=javax.servlet -DartifactId=servlet-api -Dversion=3.0 -Dpackaging=jar -Dfile=../servlet-api.jar

tips:如果不知道jar包版本,可以利用解压缩软件打开这个jar包,然后在META-INF文件夹中,找到MANIFEST.MF,用记事本打开查看Specification-Version的值即可。

5.3.2 编写一个TestServlet.java文件

在src/main/java下编写一个TestServlet.java

@WebServlet("/servlet/test")
public class TestServlet extends HttpServlet {
	private static final long serialVersionUID = -3211871061729232793L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) 
         throws ServletException, IOException {
		System.out.println("进入了servlet...");
	}
}

5.3.3 使用Maven命令对项目一键构建

右键工程Run As -> Maven build… 即可弹出Maven命令框。
在这里插入图片描述在这里插入图片描述

Goals中的常用命令列表

clean清除target目录(包括编译结果和打包结果)
compile编译java源代码,编译后的class文件在target/classes下(IDE中不可见)
test-compile编译测试代码,编译后的class文件在target/test-classes下
test执行所有测试,重新编译
package打包命名,java打jar包,web打war包
install将工程打包后发布到本地仓库下的groupid/artifactid/version中

5.3.4 部署访问项目

测试阶段,建议在IDE中按照传统的方式,将项目部署到tomcat,启动tomcat,访问servlet,流程和之前一样。

竣工阶段,需要将项目打成war包,手动扔到tomca/webapps下,启动tomcat后浏览器访问。

至此,我们利用Maven搭建的第一个项目就结束了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值