maven特点&生命周期&依赖范围

来源:互联网 发布:青鸟软件股份有限公司 编辑:程序博客网 时间:2024/06/15 03:02

maven是纯JAVA编写的,并且只能管理java的项目。

maven管理项目的优点:

1、maven项目节省了空间,同时在开发过程中还统一了使用jar包的版本。
通过写在pom.xml中的坐标来进行以来管理,项目中所需要的jar包都从仓库中获取。
2、一键构建。
可以用一个命令直接让项目运行起来。(tomcat:run)
3、可以跨平台。
因为maven是由java编写的,所以只要平台安装了对应的java虚拟机,就可以运行maven。
4、应用于大型项目时可以提高开发效率。
每个版本的maven都对应着不同版本的jdk。
5、maven在联网情况下可以自动下载源码包,方便查看源码。

maven有三种仓库:

本地仓库:在本地电脑上。
中央仓库:在互联网服务器上,由maven团队维护。
远程仓库:个人建的服务器,私服。

maven的生命周期:

有三个阶段:
clean生命周期

default生命周期
Compile test package install deploy
执行任何一个步骤,此步骤之前的步骤都会执行。

site生命周期

不同的生命周期可以同时执行:
Mvn clean package 先清除再打包
mvn package clean 先打包再清除

maven的依赖范围scope主要用到的有4个:

compile:
其为默认值,不写scope标签时,取值为compile
其意义为相对应的jar包在编译、测试、打包、运行这四个阶段都需要用到。
举例:struts2-core-2.3.24.jar
编译时:需要
测试(test命令):需要
打包:需要
运行:需要

provided:
其意义为相对应的jar包在编译、测试、运行这三个阶段都需要用到。
一般当容器提供了对应的jar包时需要用到这个范围
注:tomcat8版本自动去重,就算jar包重复了,也会进行选择,选择依赖提供的jar包来使用。
举例:servlet-api.Jar
编译时:需要
测试(test命令):需要
打包:不需要
运行:需要

test:
其意义为相对应的jar包在测试这一个阶段需要用到。
一般都为junit测试用到。
举例: junit.jar
编译时:不需要
测试(test命令):需要
打包:不需要
运行:不需要

runtime:
其意义为相对应的jar包在测试、打包、运行这三个阶段都需要用到。
一般这种情况编译时基本都是基于接口编程。
举例:数据库驱动包
编译时:不需要
测试(test命令):需要
打包:需要
运行:需要

原创粉丝点击