日期:2021年12月16日
出处:黑马程序员JavaWeb全套教程,Java Web从基础到项目实战(IDEA版)
正文
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就是一个集合于之前知识点优点于一身,并且摒弃了他们的缺点的一个项目管理工具。