Maven 构建与依赖的生命周期
来源:互联网 发布:网络ip电话和传统电话 编辑:程序博客网 时间:2024/04/27 12:15
scope:依赖的生命周期—用来控制项目编译时需要使用哪套classpath,比如测试时会将junit.jar加入编译环境,但是发布产品时又不会将junit.jar加入到编译环境
构建的生命周期
Maven有用三套相互独立的生命周期,他们分别是clean、default、site。
clean生命周期的目的是清理项目default生命周期的目的是构建项目
site生命周期的目的是建立项目站点
每个生命周期都包含一些阶段(phase),这些阶段是有序执行的,并且后面的阶段依赖于前面的阶段,用户和maven最直接的交互方式就是调用这些生命周期阶段。
-------------------------------------------------------------------------------------------------
clean生命周期
clean生命周期包含三个阶段:
1)pre-clean:执行一些清理前需要完成的工作
2)clean:清理上一次构建生成的文件
3)post-clean:执行一些清理后需要完成的工作
我们一般使用clean命令即可
default生命周期
default生命周期定义了真正构建时需要执行的步骤,它是所有生命周期中最核心的部分,其中包括如下阶段:
1)validate
2)initialize
3)generate-sources
4)process-sources处理项目主资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,赋值到项目输出的主classpath目录中。
5)generate-resources
6)process-resources
7)compile编译项目的主源码。一般来说,是编译src/main/java目录下的java文件至项目输出的主class目录中
8)process-classes
9)generate-test-sources
10)process-test-sources 处理项目测试资源文件。一般来说,是对src/test/resources目录的内容进行变量替换等工作后,赋值到项目输出的测试classpath目录中。
11)generate-test-resources
12)process-test-resources
13)test-compile编译项目的测试代码。一般来说,是编译src/test/java目录下的java文件至项目输出的测试classpath目录中
14)process-test-classes
15)test使用单元测试框架运行项目,测试代码不会被打包或者部署
16)prepare-package
17)package接受编译好的代码,打包成可发布的格式,如JAR
18)pre_integration-test
19)integration-test
20)post-integration-test
21)verify
22)Install 将包安装到maven本地仓库,供本地其它maven项目使用
23)deploy将最终的包复制到远处仓库,供其它开发人员和maven项目使用
注:未说明的大家可以参考官网的解释
我们一般使用的几个命令:compile、test、package、install、deploy
site生命周期
site生命周期的目的是建立和发布项目站点,maven能够基于pom所包含的信息,自动生成一个侯浩的站点,方便团队交流和发布项目信息。该生命周期包含如下阶段:
1)pre-site执行一些在生成项目站点之前需要完成的工作
2)site生成项目站点文档
3)post-site执行一些在生成项目站点后需要完成的工作
4)site-deploy将生成的项目站点发布到服务器上
命令行与生命周期
从命令行执行maven任务的最主要方式就是调用maven的生命周期阶段。需要注意的是,各个生命周期是相互独立的,而一个生命周期的二阶段是有前后依赖关系的,也就是说后一个生命的执行,那么前面的生命周期必须也要执行。
1)clean:该命令调用clean生命周期的clean阶段。实际执行的生命周期是pre-clean和clean阶段
2)test:该命令调用default生命周期的test阶段。实际执行的阶段为validate、initialize等,知道test的所有阶段。这也解释了为什么在测试的时候,项目的代码能够自动的得以编译。
3)clean install:该命令调用clean生命周期的clean阶段和default生命周期的install阶段。实际执行的阶段为clean生命周期的pre-clean、clean阶段,以及default生命周期的从validate至install的所有阶段。该命令结合了两个生命周期,在执行真正的项目构建之前清理项目时一个很好的建议。
4)clean deploy site-deploy:该命令调用clean生命周期的clean阶段、default生命周期的deploy阶段,已经site生命周期的site-deploy阶段
- Maven 构建与依赖的生命周期
- Maven 构建与依赖的生命周期
- Maven - 依赖与生命周期
- Maven构建的生命周期
- Maven生命周期与构建管理
- 介绍maven构建的生命周期
- maven生命周期及依赖
- 《Maven进阶》1.maven 项目生命周期与构建原理
- 《Maven进阶》maven 项目生命周期与构建原理
- Maven构建生命周期介绍
- Maven - 构建生命周期
- Maven - 构建生命周期
- Maven构建生命周期
- Apache Maven 构建生命周期
- Maven 构建生命周期
- Maven构建生命周期
- maven的依赖传递与排除依赖
- Maven的生命周期 命令行与生命周期
- codeforces_632C.The Smallest String Concatenation(string)
- java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)
- red hat 6.5 安装DB2 10.5
- Android系统中的屏幕状态切换以及亮度设置
- Android--Intent启动活动
- Maven 构建与依赖的生命周期
- QGis二次开发基础 -- 添加矢量要素功能
- Swift-网络、本地数据解析
- java hashCode的介绍
- 实验说明JSP中include指令和include动作指令的区别
- LinkIt Assist 2502开发笔记4: 样例程序解释
- BZOJ_P2599 [IOI2011]Race(点分治)
- LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing的解决方法
- 蓝桥杯 幸运数