`

05 Maven插件

阅读更多

一、.插件目标
      插件以独立的构件构件形式存在,为了能够利用代码,一个插件往往能够完成不能任务的多个功能。每个功能就是就是一个插件目录。

 

 
二、.插件绑定
      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插件(m2e),maven插件离线安装包

    现在eclipse的社区版都不内置maven插件了,站点在线安装实在是太痛苦了(我装了6个小时),于是急于寻找一种离线安装的办法,可是在网上又找不到对应的m2e包(我用的eclipse4.7),于是我决定将站点下的文件(很多)...

    eclipse安装maven插件需要包

    然而,在某些网络环境不佳的情况下,Eclipse可能无法通过内置的更新机制在线安装Maven插件。本文将详细介绍如何在Eclipse中离线安装Maven插件,以及如何配置Windows环境来确保Maven的正常工作。 首先,我们需要在...

    jenkins 离线安装maven插件集合jenkins-maven.zip

    5. **配置Maven插件**: 在Jenkins中配置Maven插件,你需要提供Maven的安装路径,以便Jenkins在构建过程中调用Maven。这可以在Jenkins全局工具配置中完成,也可以在每个具体的Maven项目配置中设置。 6. **使用Maven...

    eclipse离线安装maven插件详解(内附maven插件包)

    本篇文章将详细解析如何在Eclipse中离线安装Maven插件,同时提供内附的Maven插件包,以解决在线安装过程中的速度问题和可能遇到的错误。 首先,我们需要准备的是Maven的安装。Maven是Apache开源的一个项目管理工具...

    eclipse的maven插件

    Eclipse的Maven插件是开发Java项目时不可或缺的工具,它将强大的Maven构建系统与流行的Eclipse集成开发环境(IDE)相结合,为开发者提供了一站式解决方案。Maven是一个项目管理和综合工具,它通过定义项目的结构和...

    Myeclipse6.5的Maven插件

    **MyEclipse 6.5 Maven插件详解** 在软件开发过程中,MyEclipse作为一款强大的Java集成开发环境,提供了对多种技术的支持,包括但不限于Java、JSP、Servlet、Struts、Spring等。而在Java企业级开发中,Maven作为...

    Myeclipse maven插件下载

    MyEclipse集成Maven插件,使得在MyEclipse中使用Maven变得更加便捷。 1. Maven简介: Maven是Apache软件基金会的一个项目,它提供了一个项目管理和综合工具。Maven通过一个项目对象模型(Project Object Model,...

    eclipse-maven插件

    在Eclipse中集成Maven插件,可以使得开发者在IDE内就能方便地进行Maven相关的操作,如编译、测试、打包等。本篇文章将详细介绍如何在Eclipse中离线安装Maven插件,并配置自定义的本地仓库路径。 首先,我们需要了解...

    eclipse安装的maven插件

    然而,早期版本的Eclipse并未内置Maven支持,因此需要用户自行安装Maven插件来实现对Maven项目的集成管理。本教程将详细介绍如何在低版本的Eclipse中安装和配置Maven插件。 首先,我们需要了解为何要在Eclipse中...

    安装Jenkins的git和maven插件

    本文将详细讲解如何在Jenkins中安装Git和Maven插件,以便实现版本控制与构建管理。 首先,让我们了解Jenkins插件的作用。Jenkins通过插件扩展其功能,提供对各种工具和技术的支持。Git插件允许Jenkins与Git仓库进行...

    自定义maven插件的实现

    然而,有时候Maven的内置插件无法满足特定的需求,这时就需要自定义Maven插件来扩展其功能。本篇文章将深入探讨如何实现自定义的Maven插件。 首先,了解Maven插件的基本结构至关重要。一个Maven插件通常由一组Mojo...

    eclipse安装maven插件

    Eclipse作为流行的Java集成开发环境(IDE),通过安装Maven插件,可以让开发者在Eclipse内部方便地进行Maven项目的开发和管理。下面我们将详细介绍如何在Eclipse中安装Maven插件。 首先,我们需要知道为什么要在...

    maven插件压缩包

    ** Maven 插件压缩包详解 ** Maven 是一个强大的项目管理工具,广泛应用于Java开发领域,它通过一套规范化的构建过程,使得项目的构建、依赖管理和部署变得更加简单。Maven 插件是 Maven 生态系统的重要组成部分,...

    Maven插件手动下载

    本话题将深入探讨“Maven插件手动下载”的过程及相关知识点。 Maven插件是Maven生态系统中的关键组成部分,它们提供了执行特定构建任务的能力,如编译源代码、打包项目、运行测试等。Maven中央仓库是默认的插件和...

    apache-maven插件

    Maven插件是实现特定构建任务的可插拔组件,如编译代码(maven-compiler-plugin)、打包应用(maven-jar-plugin)或运行单元测试(maven-surefire-plugin)。开发者可以根据需要选择和配置相应的插件,以实现特定的...

    eclipse安装maven插件,处理无Maven Pom editor打开方式问题

    在Eclipse中安装Maven插件,可以方便开发者在IDE内进行Maven项目的操作,解决无法用Maven Pom editor打开pom.xml文件的问题。以下是对这个主题的详细说明: 1. **Maven Pom Editor**: Maven的pom.xml文件是项目...

Global site tag (gtag.js) - Google Analytics