Maven

121 阅读3分钟

日期:2021年12月16日

出处:黑马程序员JavaWeb全套教程,Java Web从基础到项目实战(IDEA版)

www.bilibili.com/video/BV1qv…

正文


Maven是一款项目管理工具

包含一个项目对象模型(POM:project object mode)

作用: Maven 最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件,我们不再需要定义过程,甚至不需要再去实现这些过程中的一些任务。\

需要配置环境变量

Maven的仓库

由于本地仓库和中央仓库交互和传输的速率慢所以出现了远程仓库,远程仓库会从中央仓库下载很多jar包,作用和中央仓库一样,但是传输速度更快

阿里云的私服(远程仓库)地址

	 <mirror>  
		  <id>alimaven</id>  
		  <name>aliyun maven</name>  
		  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		  <mirrorOf>central</mirrorOf>          
	</mirror>

Maven的命令

compile

clean

package

install

Maven的生命周期

同一套生命周期中,执行后边的操作,会自动执行前边的所有操作。

每一个生命周期的命令对应的就是一些插件,插件会下载到本地仓库里面

Maven环境

Maven的坐标

被Maven管理的资源的唯一标识

  • groupld:组织名称
  • atifactld:模块名称
  • version:版本号
<!--    单元测试的jar包-->
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
    </dependency>
</dependencies>

在使用依赖导入jar包时,新版本的IDEA是要手动刷一下的

IDEA中用Maven创建项目

不论是创建java项目还是web项目基本流程都是 new module--->选择Maven

然后就是他们基本的配置了,不过需要注意的是java项目和web项目有点不同:

可以看出web项目要比java项目多配置webapp。一定要注意webapp中包括webapp他们每一个命名都是不允许改动的

依赖范围

依赖范围最重要的就是provid,因为如果Maven配置在特定情况下中比如(serblet-api)如果没有配就会出现“500”,如图所示:

其他的其实配置与否是没有关系的不会报错。

最后附上一张知识点比较全的图:

总结


今天学完Maven之后,感觉部署更方便了,之前需要导入jar包,集成到IDEA中还有一些配置等等十分复杂,但是Maven可以直接在配置文件上巧固顶的代码即可,而且你需要什么,就可以添加对应的依赖或者插件,并且Maven本身会自动生成很清晰的目录,对于一些文件的操作运行也十分方便。Maven的知识点很碎,几乎一个视频就有一个知识点,但是学完之后发现其实他们的写法都大同小异。Maven的学习过程中还是报露出很多的问题的,比如webapp里面所有的文件命名都不允许改变,这种是很细小的差别,但是就是这些细小的差别结果会有千差万别。

总的来说Maven就是一个集合于之前知识点优点于一身,并且摒弃了他们的缺点的一个项目管理工具。