MAVEN - 基本介绍(二)

写在前面

MAVEN是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
MAVEN能帮助我们完成工程构建,编译代码,运行单元测试,打包,生成报表,甚至能帮我们部署项目。
MAVEN中具体的编译和打包工作是通过build标签中配置的plugin来完成,如果没有配置插件,MAVEN会使用绑定的默认插件来完成基本操作。如果有需要可以针对各个plugin进行特殊配置,需要在pom.xml中的标签中显示指定 plugin 和 相关属性。

默认插件

插件功能说明
maven-clean-plugin清理已有target目录
maven-resources-plugin处理资源文件
maven-compiler-plugin编译JAVA源码通常需要指定MAVEN编译使用的JDK版本(Maven3.x默认用jdk1.5, Maven2.x默认用jdk1.3 )和编码,Windows默认使用GBK编码,JAVA项目一般为UTF-8,需要在该插件中指出,否则中文乱码可能会导致编译错误。
maven-surefire-plugin执行单元测试用例
maven-jar-plugin生成JAR文件通常需要在MANIFEST.MF文件中添加mainClass文件的路径,这样在执行JAR包时,无需额外的参数即可运行。如果CLASS文件用到了外部JAR包的依赖,JAR包直接运行会出错,因为找不到所依赖的jar包,需要增加<addClasspath>参数。<configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.mallx.XXX</mainClass></manifest></archive></configuration>
maven-install-plugin安装JAR到本地仓库
maven-deploy-plugin发布构件
maven-site-plugin生成站点将工程所有文档生成网站,网站界面默认和Apache的项目站点类似,但是其文档用doxia格式编写的,目前不支持docbook,需要用其他插件配合才能支持。

生命周期

(1). Maven有三套独立的生命周期,他们并不是一个整体。用户可以仅仅调用clean来清理目录,也可以仅仅调用site来生成站点,这三个生命周期之间相互独立,不存在强依赖关系,也可以将三个生命周期组合使用(mvn clean install -DskipTests),组合后的指令按顺序依次执行,每套生命周期又有多个阶段组成。

(2). 在Maven的生命周期中需要牢记,在同一套生命周期中运行任何一个阶段的时候,它前面的所有阶段都会被执行就行了。这就是为什么当我们运行mvn install命令的时候,代码会被编译(compile)、测试(test)和打包(package)了。

(3). 但是在不是同一套的生命周期中以上特性(2)并不适用,所以很容易会误认为清理生命周期是在默认生命周期之前的必经阶段。也就是说,会被认为如果执行默认生命周期中的阶段的话,清理生命周期中的所有阶段都会被执行,而这是不对的,所以在默认情况下 mvn installmvn clean install 的执行流程是完全不一样的(对install插件重新配置和定义的除外)。不同一套的生命周期之间是相互独立的,其中的阶段并不会相互影响。


①. 清理生命周期(Clean Lifecycle):在项目构建之前进行一些清理工作,一般是删除target目录下的文件;

清理生命周期
②. 默认生命周期(Default Lifecycle/Build Lifecycle ):用于构建项目的核心部分,包括编译、测试、打包、部署等;

默认生命周期

③. 站点生命周期(Site Lifecycle):用于生成项目报告、站点,发布站点。

站点生命周期

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cloneme01

谢谢您的支持与鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值