maven插件的生命周期的详细说明(两)

插件配置

定义解释:插件目标

当我们了解了maven插件之后。我们发现假设为每个功能编写一个独立的插件显然是不可取的,由于这些任务背后有非常多能够复用的代码。因此,把这些功能聚集在一个插件里,每个功能我们就称之为一个插件目标。

举个样例:

maven-dependency-plugin有十多个目标,每一个目标相应了一个功能

分析项目依赖:dependency:analyze

列出项目依赖树:dependency: tree

列出项目全部已解析的依赖:dependency:list

POM中插件全局配置

有些參数的值从项目的创建到项目公布都不会改变,或者说非常少改变,对于这样的情况,就能够在pom.xml中进行全局配置。

例:配置一个通用的Java编译版本号

        <build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

这样,无论绑定到compile阶段的maven-compiler-plugin: compile 还是绑定到test-compiler 阶段的maven-compiler-plugin: testCompiler 任务。就都可以使用该配置,基于Java1.6版本号进行编译。

POM中插件任务配置

获取插件信息

在线插件信息

Maven插件的来源:基本全部基本的maven插件都来自于Apache和CodeHaus

由于maven本身是属于Apache的。全部它有非常多官方的插件,并且他们具有非常好的稳定性

除了Apache之外,托管于Codehaus上的Mojo项目也提供了大量的maven插件。

(注:这些插件的文档和可靠性相对较差,使用的时候出现故障。仅仅能自己查看源代码)

插件解析机制和常见问题

与依赖构件一样,插件构件相同基于坐标存储在Maven仓库中。在须要的时候,Maven会从本地仓库寻找插件。假设不存在。则从远程插件仓库查找。找到插件之后,再下载到本地仓库使用

注:依赖的远程仓库    !=  插件的远程仓库,Maven会差别对待他们。

Maven须要的依赖在本地仓库中不存在时。Maven去配置的远程仓库中查找

Maven须要的插件在本地仓库中不存在时。Maven不会去这些远程仓库查找。

怎样配置插件的远程仓库

Maven的插件远程仓库使用<pluginRepositories>和><pluginRepository>进行配置

Maven内置的插件远程仓库配置例如以下:它关闭了对SNAPSHOT的支持,防止不稳定的构建

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

简单配置:

1.2省略groupId配置:

Maven针对其官方的插件提供了一种简单的配置策略,其官方的groupId为:org.apache.maven.plugins,在配置的时候能够省略该配置,Maven在解析该插件的时候,会自己主动用默认的groupId补齐。可是普通情况下不推荐此种使用方法,由于仅仅剩下了一行配置。并且easy对新手造成费解。

2.省略版本号配置:

maven的POM是採用了继承的机制(在maven的聚合与继承中有具体介绍)。Maven中有一个超级POM,全部的项目都继承了这个超级POM的配置,因此用户不加不论什么配置。Maven使用核心插件的时候,他们的版本号就已经确定了。

maven-clean-plugin

maven-compiler-plugin

maven-surefire-plugin

假设我们在配置的时候没有配置插件的版本号,Maven会遍历本地仓库和全部远程插件仓库,将该路径下的仓库元数据归并后,就能计算出latest和release版本号。

在Maven2中::::假设不配置版本号。那么会默认的被解析到latest版本号。这个版本号可能会出现潜在的问题,比方说。这个版本号是快照版本号

在Maven3中::::假设不配置版本号,那么会默认的被解析到release版本号,这样就攻克了稳定性问题,可是这也可能存在潜在问题,比方说,新版本号的行为与旧版本号的行为发生了变化,这样也会出现构建失败

所以:使用插件的时候,应该显示的设定版本号。

佛之孝:众生皆父母。百善孝为先。

明确心佛众生三无区别,同体名大悲的道理。才知道。关爱他人就是关爱自己,救度他人就是救度自己,对人好,这是对自己好,然后,,众生他们的父母来救度,这是佛的孝心。

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-06 00:30:56

maven插件的生命周期的详细说明(两)的相关文章

Maven 的插件和生命周期的绑定

一.Maven 的生命周期 Maven 的生命周期是对所有的构建过程进行抽象和统一.Maven 的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶段的执行顺序. Maven 有三套相互独立的生命周期,分别是 clean.default和 site.生命周期( lifecycle )由多个阶段( phase )组成,每个阶段( phase )会挂接一到多个goal.Goal 是 maven 里定义任务的最小单元,如下表: 生命周期( Lifec

Maven专题3——生命周期与插件

三套生命周期 Maven有3套相互独立的生命周期,用户可以调用某个生命周期的阶段,而不会对其他生命周期产生影响. 每个生命周期包含一些有先后顺序的阶段,后面的阶段依赖于前面的阶段,意味着用户调用后面的生命周期阶段时,同一生命周期中前面的阶段也将被执行. clean生命周期 pre-clean clean post-clean default生命周期 validate initialize generate-sources process-sources generate-resources pr

项目构建之maven篇:6.生命周期与插件

项目生命周期 清理 初始化 编译 测试 打包 部署 三套生命周期 1.clean pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作 2.compile validate generate-sources process-sources generate-resources process-resources 复制并处理资源文件,至目标目录,准备打包. compile 编译项目的源

【maven详解-生命周期】Maven的生命周期和插件

maven的生命周期是根据我们项目中常见的流程来定义的:清理.编译.测试.打包.集成测试.验证.部署等功能.maven的每个生命周期对应不同的阶段,每个阶段都对应不同的插件. maven定义了三套生命周期:clean.default.site.每个生命周期都包含了一些阶段(phase),三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase.执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase. 1

Maven整理笔记の生命周期和插件

项目构建的生命周期,其实软件开发人员每天都在干这个事,即项目清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等,可以说几乎所有项目的构建都可以映射到这样一个生命周期上. Maven的插件机制是完全依赖Maven的生命周期的. 三套生命周期 Maven的生命周期并不是一个整体,Maven拥有三套独立的生命周期,它们分别是clean\default\site.Clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site的生命周期的目的是建立项目站点. 每个生命

Maven的三大生命周期

一.Maven的三大生命周期 Maven的生命周期就是对所有的构建过程进行抽象和统一.包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有的构建步骤. Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法. 二.三套生命周期 Maven由三套相互独立的生命周期,分别是clean.default和site.每个生命周期包括一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段. 1.clean生命周期

Maven的构建生命周期理解

以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命周期基础: Maven基于构建生命周期的中心概念.这意味着构建和分发特定工件(项目)的过程被明确定义. 对于构建项目的人员,这意味着只需要学习一小堆命令即可构建任何Maven项目,POM将确保他们获得所需的结果. 有三个内置的生命周期:默认(default),清洁(clean)和站点(site).在

maven入门-- part3 生命周期

简介: Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是: Clean Lifecycle 在进行真正的构建之前进行一些清理工作. Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等. Site Lifecycle 生成项目报告,站点,发布站点. Clean: 每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段.比如,运行mvn clean ,这个的clean是Clean生

IDEA中Maven项目的生命周期操作说明

目录 clean-清理操作 变化 结论 compile-编译操作 变化 结论 package-打包操作 变化 结论 install-安装操作 变化 结论 deploy-部署操作 IDEA中对Maven项目做了相当好的支持,专门有个Maven的模块用于进行项目的操作: 上图红框中的内容即开发者经常使用的操作,将英文简单翻译过来,其中文分别为Lifecycle(生命周期).clean(清理).validate(验证).compile(编译).test(测试).package(打包).verify(核