Maven 生命周期
来源:互联网 发布:小财神打水软件 编辑:程序博客网 时间:2024/06/06 02:42
生命周期是指项目的构建过程,它包含了一系列的有序的阶段(phase),而一个阶段就是构建过程中的一个步骤。
Maven有一下三种标准的生命周期,最常用的是默认的Maven生命周期(default Maven lifecycly):
- clean
- default(or build)
- site
目标代表一个特定的任务,这有助于项目的建设和管理。目标可以被绑定到零个或多个生成阶段。一个没有绑定到任何构建阶段的目标的构建生命周期可以执行直接调用。执行的顺序取决于目标和构建阶段被调用的顺序。
一 clean 生命周期
执行mvn clean之后,maven的清洁生命周期由一下三个阶段组成:
- pre-clean
- clean
- post-clean
下面我们将使用 maven-antrun-plugin:run进行调用clean生命周期。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.maven.demo</groupId> <artifactId>MavenDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>MavenDemo</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>id.pre-clean</id> <phase>pre-clean</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>pre-clean phase</echo> </tasks> </configuration> </execution> <execution> <id>id.clean</id> <phase>clean</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>clean phase</echo> </tasks> </configuration> </execution> <execution> <id>id.post-clean</id> <phase>post-clean</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>post-clean phase</echo> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build></project>
执行 "mvn post-clean“之后,显示如下:
[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------------------------[INFO] Building MavenDemo 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-antrun-plugin:1.1:run (id.pre-clean) @ MavenDemo ---[INFO] Executing tasks [echo] pre-clean phase[INFO] Executed tasks[INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ MavenDemo ---[INFO] Deleting D:\workspace_luna\MavenDemo\target[INFO] [INFO] --- maven-antrun-plugin:1.1:run (id.clean) @ MavenDemo ---[INFO] Executing tasks [echo] clean phase[INFO] Executed tasks[INFO] [INFO] --- maven-antrun-plugin:1.1:run (id.post-clean) @ MavenDemo ---[INFO] Executing tasks [echo] post-clean phase[INFO] Executed tasks[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 20.888 s[INFO] Finished at: 2015-02-11T15:57:21+08:00[INFO] Final Memory: 5M/16M[INFO] ------------------------------------------------------------------------
可以看到依次执行了 pre-clean、clean以及 post-clean。并且执行结束之后项目中target路径中的编译好的文件被删除。说明清洁成功。
二 default 生命周期
默认生命周期是maven使用最多的生命周期,用于构建程序。它由一下23个阶段组成:
当我们通过命令调用一个阶段的时候,比如说 mvn compile,这个阶段以及这个阶段之前的所有阶段都将被执行。根据打包的种类(JAR/WAR/EAR),每个阶段会绑定不同的goal。
执行 mvn compile,target路径下会多一个maven-status的文件夹,里面存放了编译的结果。控制台输出结果如下:
[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------------------------[INFO] Building MavenDemo 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ MavenDemo ---[INFO] Using 'UTF-8' encoding to copy filtered resources.[INFO] skip non existing resourceDirectory D:\workspace_luna\MavenDemo\src\main\resources[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ MavenDemo ---[INFO] Nothing to compile - all classes are up to date[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.999 s[INFO] Finished at: 2015-02-11T16:19:31+08:00[INFO] Final Memory: 7M/16M[INFO] ------------------------------------------------------------------------
三 网站的生命周期
该阶段分为四个阶段:
- pre-site
- site
- post-site
- site-deploy
运行 mvn site之后,log如下:
[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------------------------[INFO] Building MavenDemo 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-site-plugin:3.3:site (default-site) @ MavenDemo ---[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.[INFO] Generating "Dependencies" report --- maven-project-info-reports-plugin:2.8[WARNING] The repository url 'https://oss.sonatype.org/content/repositories/snapshots' is invalid - Repository 'sonatype-nexus-snapshots' will be blacklisted.[INFO] Generating "Dependency Convergence" report --- maven-project-info-reports-plugin:2.8[INFO] Generating "Dependency Information" report --- maven-project-info-reports-plugin:2.8[INFO] Generating "About" report --- maven-project-info-reports-plugin:2.8[INFO] Generating "Plugin Management" report --- maven-project-info-reports-plugin:2.8[INFO] Generating "Project Plugins" report --- maven-project-info-reports-plugin:2.8[INFO] Generating "Project Summary" report --- maven-project-info-reports-plugin:2.8[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 04:34 min[INFO] Finished at: 2015-02-11T16:27:07+08:00[INFO] Final Memory: 14M/42M[INFO] ------------------------------------------------------------------------
运行之后,会在target路径下生成一个site文件夹,里面包括很多文件,包括css,images以及一些项目描述文件。
0 0
- Maven生命周期
- maven生命周期
- maven 生命周期
- Maven生命周期
- Maven - 生命周期
- Maven生命周期
- maven生命周期
- maven生命周期
- MAVEN 生命周期
- maven生命周期
- maven生命周期
- Maven生命周期
- Maven生命周期
- Maven生命周期
- Maven生命周期
- maven生命周期
- Maven生命周期
- Maven生命周期
- MyBatis Generator配置文件table元素的属性useActualColumnNames
- Spring 编程式事务和申明式事务选择和使用小结
- 超详细VMware Workstation 10安装OS X Mavericks
- Linux 下软件配置,编译与安装的基本过程
- OpenCV:卷积运算
- Maven 生命周期
- 5.两分钟让你明白app后端有啥用
- spring 消息列队
- Windows下Resin的配置与部署
- iOS ARC内存管理
- C# lable实时显示不断变化的值
- LeetCode36——Valid Sudoku
- 【Apache Samza 系列】实时流数据处理框架Samza中文教程 (三)-- 概念
- 大数据如何改变教育(转载)