Maven —— 生命周期和插件

生命周期

每个生命周期包含一些阶段(phase),这些阶段是有顺序的,且后面的阶段依赖于前面的阶段。

以下面clean生命周期为例,

调用pre-clean阶段,仅执行pre-clean阶段。

调用clean阶段,依次执行pre-clean、clean。

调用post-clean阶段,依次执行pre-clean、clean、post-clean。

Maven三套独立生命周期:clean、default、site

注:()内为绑定在该阶段的内置插件

clean生命周期:

1)pre-clean执行一些清理前需要完成的工作。

2)clean   (maven-clean-plugin:clean)清理上一次构件生成的文件。

3)post-clean执行一些清理后需要完成的工作。

default生命周期:

1)validate
2)initialize


3)generate-sources
4)process-sources   处理项目主资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。
5)generate-resources
6)process-resources   (maven-resources-plugin:resources)
7)compile  (maven-compiler-plugin:compile)编译项目的主源码。一般来说,是编译src/main/java目录下的Java文件至项目输出的主classpath目录中。
8)process-classes


9)generate-test-sources
10)process-test-sources   处理项目测试资源文件。一般来说,是对src/test/resources目录的内容进行变量更换等工作后,复制到项目输出的测试classpath目录中。
11)generate-test-resources
12)process-test-resources (maven-resources-plugin:testResources)
13)test-compile   (maven-compiler-plugin:testCompile)编译项目的测试代码。一般来说,是编译src/test/java目录下的Java文件至项目输出的测试classpath目录中。
14)process-test-classes


15)test    (maven-surefire-plugin:test)使用单元测试框架运行测试,测试代码不会被打包或部署。
16)prepare-package
17)package   (maven-jar-plugin:jar       maven-war-plugin:war)接受编译好的代码,打包成可发布的格式,如:JAR、WAR
18)pre-integration-test
19)integration-test
20)post-integration-test


21)verify
22)install   (maven-install-plugin:install)将最终的包复制到远程仓库,供本地其他Maven项目使用。
23)deploy   (maven-deploy-plugin:deploy)将最终的包复制到远程仓库,供其他开发人员和Maven项目使用。

site生命周期

1)pre-site   执行一些在生成项目站点之前需要完成的工作。

2)site   (maven-site-plugin:site)生成项目站点文档。

3)post-site   执行一些在生成项目站点之后需要完成的工作。

4)site-deploy   (maven-site-plugin:deploy)将生成的项目站点发布到服务器上。

 

命令行:

$mvn clean

调用clean生命周期的clean阶段。

$mvn test

调用default生命周期的test阶段。实际运行从validate到test所有阶段。

$mvn clean install

调用clean生命周期clean阶段和default生命周期install阶段。一般项目启动都用命令。

$mvn clean deploy site-deploy

调用clean生命周期的clean阶段、default生命周期deploy阶段、site生命周期的site-deploy阶段。

 

插件

Maven的核心仅定义了抽象的生命周期,具体的任务交由插件完成的。

插件以独立的构件形式存在,因此Maven的发布包只有不到3MB的大小,Maven会在需要的时候下载并使用插件。

插件仓库

一般使用Maven内置的插件远程仓库配置就够了,所以一般不用配置。内置插件远程仓库配置具体如下:

<pluginRepositories>
	<pluginRepository>
		<id>central</id>
		<name>Maven Plugin Repository</name>
		<url>http://repo1.maven.org/maven2</url>
		<layout>default</layout>
		<releases>
			<updatePolicy>never</updatePolicy>
		</releases>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</pluginRepository>
</pluginRepositories>

内置插件

上面已将三个生命周期内的内置绑定插件已写明。

自定义绑定

to_do

其他:

<plugin>
	<groupId></groupId>
	<artifactId></artifactIda>
	<version></version>
	<executions>
		<execution>
			<id></id>
			<phase></phase>
			<goals>
				<goal></goal>
			</goals>
			<!-- 该特定任务的配置 -->
			<configuration>

			</configuration>
		</execution>
	</executions>
	<!-- 该插件整体配置 -->
	<configuration>
	</configuration>
</plugin>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值