Maven学习
优点
1.管理jar包,解决jar包冲突
2.自动执行单元测试
3.简化打包步骤
4.打包好的项目比一般的小,大大节省磁盘的空间
两大核心功能
maven的概念模型
1.依赖管理:maven工程对加jar包的管理过程
maven中不含有jar包,只有jar包的坐标,jar包被放在创建好的jar包仓库里,通过坐标找到jar包并使用。在有多个项目时,可多个项目公用一个jar包仓库,以次提高jar的利用率,节省磁盘空间
2.maven的一键构建
将项目运行的编译、 测试、 运行、 打包、 安装 ,部署等一系列过程都交给maven,运行项目是只需要进入项目所在的文件夹,输入"mvn tomcat:run"命令就能运行项目,并且还提供了访问地址
仓库的种类和彼此之间的关系
1.通过进入maven文件夹–conf–settings.xml文件,可以看到maven创建的本地仓库的位置
仓库分三类:本地仓库,远程仓库【私服】,中央仓库
本地仓库:存储在本机系统盘下的user.m2\repository仓库
远程仓库:又叫私服,是公司内部的仓库,方便公司内部成员获取jar包,在同一局域网下的用户才能访问,通过中央仓库和用户上传获取jar包。
中央仓库:存储这几乎所有的开源的jar包
maven项目的访问jar包的过程
先查找本地仓库,若本地仓库没有jar包则:
1.从远程仓库即私服,中下载jar包,若远程仓库也没有jar包则远程仓库从中央仓库下载jar包,再给本地仓库
2.直接从中央仓库下载jar包
注:下载jar包都是以联网为前提
扩展:修改本地仓库的路径
由于c盘是系统盘,一般不放大型文件,所有一般情况下,我们需要修改本地仓库的访问路径将一些常用的jar包下载好放到另外的磁盘中,这时候就需要修改配置文件"settings.xml",中标签中指定本地仓库路径
maven的标准目录结构
各目录放置对应的代码,大大方便了后期更新与维护
核心代码部分(src/main/java)
配置文件部分(src/main/resources)
测试代码部分(src/testjava)
测试配置文件部分(src/test/resources)
如果是web工程,还要一个目录,存储页面资源、js、css、图片等(“src/main/webapp”)
maven中常用的命令
1.clean命令
应用:删除编译好的字节码文件
(接手上一个人项目时,需要先清除编译好的字节码文件,因为每个人的计算机环境是不一样的,需要重新编译)
dos中进入项目里,(“cd 文件路径”—回车—“d:”–回车)
输入命令:mvn clean
target文件夹(class)被删掉
2.compile命令(编译)
应用:编译
输入命令:mvn compile
target文件夹被生成
3.test命令
不仅做了complie命令的事,还新添了测试命令的编译
应用:编译测试代码,同时编译正式代码,生存target文件夹(编译测试目录下的代码)
输入命令:mvn test
如果项目没有被编译过则生成test-classes文件夹和target文件夹,test-classes文件夹放在target文件夹中
4. package命令
不经做了test命令的事,还将项目打包了
应用:将项目打包放到target文件夹中
输入命令:mvn package
若项目没有被编译过,啧生成target、test-classes文件夹,并把打包好的项目.war文件放入target包
注:之所以打包成.war文件,是因为pom.xml文件中标签中写的是war
5.install命令(安装)
不仅做了package命令的事,还将项目打成的包放到了本地仓库
应用:将项目打成的包安装到本地仓库
maven的生命周期
三个生命周期
1.清理生命周期(在构建项目前使用,将以前的字节码文件清楚)
2.默认生命周期