maven核心概念
一.maven核心概念
(1)pom:一个文件,名称是pom.xml,pom翻译过来叫做项目对象模型。maven把一个项目当作一个模型使用。控制maven构建项目的过程,管理jar依赖。
(2)约定的目录结构:maven项目的目录和文件的位置都是规定的。
(3)坐标:是一个唯一的字符串,用来表示资源的。
(4)依赖管理:管理你的项目可以使用jar文件
(5)仓库管理(了解):你的资源存放的位置
(6)生命周期(了解):maven工具构建项目的过程,就是生命周期
(7)插件和目标(了解):执行maven构建的时候用的工具是插件。
(8)继承
(9)聚合
二.maven约定的目录结构
每一个maven项目在磁盘中都是一个文件夹
main是放主程序java代码和配置文件
java是放你的程序包和包中的java文件
resources是放你的java程序中要使用的配置文件
test是放测试程序代码和文件的(可以没有),test下的java和resources文件夹具有相同功能。
pom.xml是maven的核心文件(maven项目必须有)
三.maven编译项目
在项目的根目录之下,src目录之下(xml文件目录中,打开cmd,执行mvn compile)
mvn compile 编译src/main目录下的所有java文件
1.为什么首次编译需要下载东西
(1)为什么要下载
maven工具执行的操作需要很多插件(java类--jar文件)完成的
(2)下载什么东西了
jar文件--叫做插件--插件是完成某些功能
(3)下载的东西存放到哪里了。
默认仓库(本机仓库)
默认位置C:\Users\(登录操作系统的用户名)\.m2\repository
中央仓库的地址:https://repo.maven.apache.org
执行mvn compile,结果是在项目的根目录下生成target目录(结果目录)
maven编译的java程序,最后的class文件都放在target目录中。
四.如何设置本机存放资源的目录位置(设置本机仓库):
1.修改maven的配置文件,maven安装目录/conf/settings.xml
先备份settings.xml
2.修改<localRepository>指定你的目录(不能使用中文目录)
修改本地仓库地址:把<localRepository>标签注释清除。然后修改地址,注意路径用 / 分开。
五.仓库概念
1.仓库是什么:
仓库是存放东西的,存放maven使用的jar和我们项目使用的jar
maven使用的插件(各种jar)
我项目使用的jar(第三方的工具)
2.仓库的分类
(1)本地仓库,就是你的个人计算机的文件夹,存放各种jar
(2)远程仓库,在互联网上的, 使用网络才能使用的仓库
中央仓库:最权威的,所有的开发人员都共享使用的一个集中的仓库
中央仓库的镜像:就是中央仓库的备份,在各大洲,重要的城市都是镜像。
私服:在公司内部,在局域网中使用的,不是对外使用的。
3.仓库的使用
maven仓库的使用不需要人为参与
如果开发人员需要使用mysql驱动--maven首先查本地仓库--私服--镜像--中央仓库。
六.pom文件分析
1.坐标
groupId:组织名,通常是公司或组织域名倒叙 + 项目名
artifactld:自定义模块名,通常是工程名
version:自定义版本号
坐标在众多的maven项目中可以唯一定位到某一个项目,坐标也决定着将来项目在仓库中的路径及名称。
2.packaging
packaging:打包后压缩文件的扩展名,默认是jar,web应用是war
packaging可以不写,默认是jar
3.依赖(dependency)
一个maven项目正常运行需要其他项目的支持,maven会根据坐标自动到本地仓库中进行查找,对于程序员自己的maven项目需要进行安装,才能保存到仓库中。
dependencies和dependency,相当于java代码中的import。
你的项目中要使用的各种资源说明,比如我的项目要使用mysql驱动。
4.properties:设置属性
5.build:
maven在进行项目的构建时,配置信息,例如指定java代码使用的jdk版本。
6.parent:继承
在maven中,如果多个模块都需要声明相同的配置,例如:groupId、version、有相同的依赖、或者相同的组件配置等,也有类似java的继承机制,用parent声明要继承的父工程的pom配置。
7.modules:聚合
在maven的多模块开发中,为了统一构建整个项目的所有模块,可以提供一个额外的模块,该模块打包方式为pom,并且在其中使用modules聚合的其他模块,这样通过本模块就可以一键自动识别模块间的依赖关系来构建所有模块,叫maven的聚合。
maven的生命周期,maven的命令,maven的插件
1.maven的生命周期:
就是maven构建项目的过程、清理、编译、测试、报告、打包、安装、部署
2.maven的命令:
maven独立使用,通过命令,完成maven的生命周期的执行。
maven可以使用命令,完成项目的清理、编译、测试等等。
maven常用命令
注意:打包只会打包main目录下的
注意:执行以下命令必须在命令行进入pom.xml所在目录。
清理 |
mvn clean |
删除target目录 |
编译主程序 |
mvn compile |
会在当前目录生成target目录,存放主程序字节码文件 |
编译测试程序 |
mvn test-compile |
会在当前目录生成target目录,存放编译测试程序的字节码 |
测试 |
mvn test |
生成surefire-reporte,保存测试结果 |
打包主程序 |
mvn package |
会编译、编译测试、测试。并按照pom文件打包jar包或者war包 |
打包主程序 |
mvn install |
把本工程打包,按照本工程的坐标保存到本地仓库中。 |
部署主程序 |
mvn deploy |
把本工程打包,按照本工程保存到本地库中。自动把项目部署到web容器中。 |
3.maven的插件:
maven命令执行时,完成功能的是插件,插件就是一些jar文件,一些类。
1)单元测试(测试方法):
用的junit,junit是一个专门测试的框架(工具)。
junit测试的内容:测试的是类中的方法,每一个方法都是独立测试的,
方法是测试的基本单元。
maven借助单元测试,批量的测试你类中的大量方法是否符合预期的。
2)使用步骤
1.加入依赖,在pom.xml加入单元测试依赖
2.在maven项目中的src/test/java目录下,创建测试程序。
测试类定义规则
推荐的创建类和方法的提示。
1.测试类的名称:是Test+你要测试的类名
2.测试的方法名称是:Test+方法名称
例如:
你要测试:HelloMaven
创建测试类:TestHelloMaven
测试方法定义规则
1.方法是public的,必须的
2.方法没有返回值,必须的
3.方法名称是自定义的,推荐是Test+方法名称
4.在方法的上面加入@Test
- 点赞
- 收藏
- 关注作者
评论(0)