Maven学习之 插件plugin

Maven本质上是一个执行插件的框架。插件共分两类:build插件和reporting插件。

  • build插件,会在build阶段被执行,应该配置在POM的<build/>元素中。
  • reporting插件,生成站点的时候会执行,应该配置在POM的<reporting/>元素中。因为reporting插件的结果是生成的站点的一部分,所以这种插件应该是国际化和本地化的。此处更多详见 http://maven.apache.org/plugins/localization.html

但所有的插件至少都需要指明:groupId、artifactId、version。

通用配置

Maven插件都是通过指定一个<configuration>元素来配置的。而该元素中的子元素,都是Mojo中的property。

详见 http://maven.apache.org/guides/mini/guide-configuring-plugins.html

配置build插件

下面仅仅是在<build>元素中配置build插件。

使用<executions>标签

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<此处未完待续>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Maven项目支持的插件

org/apache/maven/plugins中有最新的插件列表。

核心插件

clean  负责build之后的清理工作

compiler 编译Java源码

deploy 将构建好的artifact部署到远程仓库

failsafe 在隔离的类加载器中运行JUnit集成测试

install 将构建好的artifact部署到本地仓库

resources 将资源复制到输出文件夹,以包含进JAR中。

site 为当前项目生成一个站点

surefire 在一个隔离的类加载器中运行JUnit单元测试

verifier 对集成测试有用 -- 校验特定环境的存在性

负责打包的类型/工具

ear 为当前项目生成一个EAR

jar 从当前项目构建一个JAR

rar 从当前项目构建一个RAR

war 从当前项目构建一个WAR

shade 从当前项目构建一个Uber_JAR,包含依赖。(也叫fat jar或super jar

source 从当前项目构建一个源码JAR

Maven大陆之外的插件:codehaus.org, code.google.com, misc

misc,其他的缩写。主要是指由各个项目提供的Maven插件,这里仅列出两个:

jetty

Apache Tomcat

下面用一些例子来说明使用的方法

一、WAR插件,有4种方式来使用它:

  1. 将项目package成war类型
  2. 调用 war:war goal
  3. 调用 war:exploded goal
  4. 调用 war:inplace goal

注意:当使用 war: goals时,它会假定compile阶段已经完成。

<project>
    ...
    <build>
        <!-- 在parent POM中定义版本 -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                ...
            </plugins>
        </pluginManagement>
        <!-- 在POM 或 parent POM中使用插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
            ...
        </plugins>
    </build>
    ...
</project>
<project>
      ...
      <groupId>com.example.projects</groupId>
      <artifactId>documentedproject</artifactId>
      <packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>Documented Project</name>
      <url>http://example.com</url>
      ...
</project>
  • 调用 mvn package 或者 mvn compile war:war,会在 target/ 下面生产相应版本的war文件(文件名是:artifactId-version.war)。
  • 调用 mvn compile war:exploded 则会在 target/ 下面生成非打包的war文件夹。该文件夹的名字是finalName,而finalName通常是artifactId-version形式。当然,可以通过制定 webappDirectory参数来覆盖默认。
<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <webappDirectory>/sample/servlet/container/deploy/directory
                    </webappDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>
  • 调用 mvn compile war:inplace,则会在 src/main/webapp/  下面创建未打包的war文件夹

小结:4种调用方式,但实际效果是3种,区别在于最终创建的是文件还是文件夹、在什么地方创建(target/, src/main/webapp/)。

官方文档链接:

http://maven.apache.org/plugins/index.html

时间: 2024-10-05 13:15:26

Maven学习之 插件plugin的相关文章

Maven学习(四):生命周期与maven插件

一.maven 生命周期 (一)简介 Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解: 1.顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义. 2.这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install  这样的命令是通用的. 3.一个M

Maven学习笔记-使用Eclipse插件创建Java Webapp项目

使用Java的猿们,最多接触的大概就是web项目了吧?在学习Maven的过程中,首先当然就是创建一个webapp项目. 自己在尝试的过程中,碰到了很多的问题.我把详细的过程都记录下来,用以今后参考. 步骤: 如果未搭建好Maven开发环境,请参考前一篇:Maven学习笔记--环境搭建 打开Eclipse, 菜单栏选择File -> new -> other,在弹出的对话框中找到Maven Project. 在弹出的新建Maven项目的对话框中,不要勾选第一项"Create a sim

maven学习:jetty插件与Tomcat插件

1.jetty插件 要测试的web的pom里面,加入jetty的插件配置,示例如下: <!-- jetty插件 --> <plugin>     <groupId>org.mortbay.jetty</groupId>     <artifactId>jetty-maven-plugin</artifactId>     <version>8.1.14.v20131031</version>     <c

MAVEN学习(六)--maven常用插件

我们使用maven做一些日常的工作开发的时候,无非是想利用这个工具带来的一些便利.比如它带来的依赖管理,方便我们打包和部署运行.这里几个常见的插件就是和这些工程中常用的步骤相关. maven-compile-plugin 这个插件就如同名字所显示的这样,用来编译源代码的.最开始碰到这个插件是在于有的时候我们下载了一些工程需要编译的时候,比如我们输入命令:mvn install ,但是系统编译的时候报错了,错误的信息如下: [ERROR] Failed to execute goal org.ap

Maven学习之打包插件

maven的打包插件主要有maven-shade-plugin 和maven-assembly-plugin两种,两种插件的主要差别如下 (1) maven-assembly-plugin <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descr

Maven学习总结一:安装Maven,以及myeclipse添加maven插件

一:Maven官方下载地址 1.https://maven.apache.org/download.cgi 2.解压目录结构如下 二:添加Maven环境变量 1.添加MAVEN_HOME 2.在Path下把MAVEN_HOME添加上去 三.测试是否安装成功 1.在命令行输入 mvn -version,出现下面提示则表示成功 四.Myeclipse添加Maven插件 1.选择菜单Window下面的preferences 2.选择installations,点击Add把刚下载的Maven路径引入进来

Maven学习总结

转载至:http://www.cnblogs.com/xdp-gacl/p/3498271.html 一 入门 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步骤,这六个步骤就是一个项目的完整构建过程. 理想的项目构建是高度自动化,跨平台

maven 学习---部署基于Maven的war文件到Tomcat

在本教程中,我们将学习如何使用Maven的Tomcat插件打包并部署一个WAR文件到Tomcat(Tomcat的6和7. 要用到工具: Maven 3 Tomcat 6.0.37 Tomcat 7.0.53 Tomcat 7发布URL = http://localhost:8080/manager/text命令 = mvn tomcat7:deploy Tomcat 6发布 URL = http://localhost:8080/manager/命令 = mvn tomcat6:deploy 1

maven学习心得

心得:这几天一直在研究maven的配置,还真是伤心啊,网上资料不多,而且问题不断.确实很让人头疼 背景:之所以学习maven是因为我们需要一键部署,我们项目是已经差不多完成了,是eclipse的web项目,需要将它变成maven项目 问题: 1.拆分项目为多个模块解决循环依赖 如果一个web项目下面有A,B,C三个模块,各个模块互相依赖,这是maven会提示,这是一个循环依赖,而不能正常编译项目. 解决办法:http://hck.iteye.com/blog/1728329 但是建议最好模块分清