一、.插件目标
插件以独立的构件构件形式存在,为了能够利用代码,一个插件往往能够完成不能任务的多个功能。每个功能就是就是一个插件目录。
二、.插件绑定
Maven的生命周期和插件相互绑定,用以完成实际的构建任务。准确的说,是生命周期的阶段和插件的目标相互绑定。
1.内置绑定
为了让用户不使用任何配置就能构建Maven项目,Maven在核心为一些主要的生命周期阶段绑定了插件目标。
其中clean和site的生命周期绑定的插件都比较简单直接。唯有default各种阶段绑定的插件和项目的打包类型有关。
2.自定义绑定
用户可以自己选择将插件目标绑定到某个阶段上。如创建项目源码的jar包,用户需要自行配置绑定。代码如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven=source-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>
jar-no-fork
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
executions下execution用来配置执行一个任务。该例中配置了一个id为attach-sources的任务,通过phase配置,将其绑定到verify阶段,再通过goals配置要执行插件目标。
有时不通过phase元素指定生命周期的阶段,插件目标也能够绑定到生命周期中。原因是有很多插件的目标在编写时已定义了默认绑定阶段。
如果多个目标被绑定到阶段,按照目标的声明顺序执行。
三.插件配置
可通过配置一些参数来改变插件的行为。
1.命令行插件配置
在Maven命令中使用-D参数,并伴随着一个“参数键=参数值”。如:
mvn install -Dmaven.test.skip=true maven-surefire-plugin的maven.test.skip为true时,会跳过测试。参数-D是Java自带的。
2.POM中插件全局配置
并不是所有插件参数都适合通过命令行设置。有些参数从项目创建到项目发布很少改变,针对这种情况,在POM文件中配置参数更方便。
用户可能声明插件时,对此插件进行一个全局配置。例如,我们通常会配置maven-compile-plugin告诉按JAVA 1.5版本进行编译:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compile-plugins</artifactId>
<version>2.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
3.POM中插件任务配置
除了可为整个插件配置全局参数,还可为某个插件任务配置特定的参数。以maven-antrun-plugin为例。它有一个目标,可用来在Maven中调用ant任务。用户将maven-antrun-plugin:rrun绑定到多个生命周期的阶段上,再加上不同的配置,就可让Maven在不同的生命阶段执行不同的任务。如:
<executions>
<execution>
<id>ant-validate</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>I'm bound to validate phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>ant-verify</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>I'm bound to verify phase</echo>
</tasks>
</configuration>
</execution>
</executions>
四.获取插件信息
1.在线插件信息
可从官方网站获取插件的帮助信息。
2.使用maven-help-plugin
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compile-plugins:2.1
其中的版本信息可省略;
也可使用插件的目标前缀替换坐标,如:
mvn help:describe -Dplugin=compiler
如果仅想获取某个目标的信息,可加上goal参数:
mvn help:describe -Dplugin=compiler -Dgoal=compile
五.从命令行调用插件
mvn -h 获取mvn使用帮助
可使用“插件前缀:gloa”或"groupid:artifactid:version:goal"
六.插件解析机制
1.插件仓库
插件仓库使用pluginRepositories和pluginRepositorie来配置,除了标签名不一样,其他的和普通的远程仓库没有区别。
2.插件默认groupId
在POM中配置插件时,如果该插件是Maven的官方插件(即groupId是org.apache.maven.plugins),可省略groupId配置。
3.解析插件版本
如果没有指定插件的版本,默认使用release版本,也就是最新的发布版。
4.解析插件前缀
插件前缀和groupid:artifactId是一一对应的。这种对应关系保存在插件仓库的元数据中。这个元数据位于groupId/maven-metadata.xml中。由于大多数插件来自特定的地方,Maven默认使用org.apahce.maven.plugins和org.codehaus.mojo两个groupId中的元数据。可通过配置setting.xml,让Maven检查其他groupid上的元数据。如:
<settings>
<pluginGroups>
<pluginGroup>
com.your.plugins
</pluginGroup>
</pluginGroups>
</settings>
分享到:
相关推荐
现在eclipse的社区版都不内置maven插件了,站点在线安装实在是太痛苦了(我装了6个小时),于是急于寻找一种离线安装的办法,可是在网上又找不到对应的m2e包(我用的eclipse4.7),于是我决定将站点下的文件(很多)...
教你如何给eclipse安装maven插件,废话不多说,有图有真相
详细讲解如何为电脑和Eclipse安装maven插件,并且包含maven的电脑安装包和Eclipse的maven插件包,maven插件安装位离线安装,因为在线安装很慢,而且容易出错,原创哦,哈哈
myeclipse maven插件
对于eclipse无法在线安装maven插件的解决办法。首先windows配置maven环境,然后在eclipse离线安装maven插件。具体方法可以在我的博客中看到
eclipse安装maven插件,包含安装步骤。eclipse安装maven插件,包含安装步骤。
eclipse的maven插件,下载后 解压至eclipse的dropins目录下,重启即可
在eclipse中,离线安装maven插件,这样就可以配置自己的仓库路径。
myeclipse自带有maven插件相难用,而且不能创建maven项目,需要独立安装,即可顺利创建maven项目。 1、删除默认的maven,在该目录下直接搜索maven,删除所有相关的jar和目录。 2、下载maven文件,从...
打开并输入:path= D:/Development/eclipse-JavaEE/eclipse/plugins/maven(请参照上面对应你的 maven 插件) 4. 重启 eclipse,OK,完成了,启动后你打开Window ---> Preferences 会发现一个多了一个选项Maven...
Myeclipse10安装maven插件
Eclipse中Maven插件Eclipse中Maven插件Eclipse中Maven插件Eclipse中Maven插件
附件以Maven插件为核心,详细的讲述了如何获取插件的信息和插件配置的两种方式。熟练的掌握这些
Maven插件的离线安装方法。可拔性更好,可以随时将插件插上和拔下,非常方便。
eclipse maven插件。 因在线安装地址出错,虽然可以去eclipse market中搜到,但有时版本问题,而安装失败。 该文件可以直接copy到eclipse直接子目录下,覆盖原来的plugin和feature文件夹。 不过推荐使用link...
低版本的eclipse中不自带maven插件,使用此插件直接安装在eclipse的配置文件中。
eclipse安装maven插件时常会出错,将Juno版本安装问题整理出来供大家分享
包含了企业常用SVN插件,Maven插件等
Eclipse安装Maven插件