maven利用各种插件来管理构建项目,本文记录下工作中常用到的插件及使用方法。每个插件都会提供多个目标(goal),用于标示任务。各插件配置在pom.xml里,如下:

<build>
[...]
<plugins>
<plugin>
...
</plugin>
</plugins>
[...]
</build>

常用插件见:http://maven.apache.org/plugins/index.htmlhttp://www.mojohaus.org/plugins.html

maven-compiler-plugin

用于编译源代码,默认在compile阶段被调用。两个goal,compiler:compile/compiler:testCompile

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<!--源码的Java版本-->
<source>1.7</source>
<!--运行环境的Java版本-->
<target>1.7</target>
</configuration>
</plugin>

maven-surefire-plugin

test阶段执行单元测试,路径src/test/java

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<!--不执行的单元测试文件-->
<excludes>
<exclude>bvt/*.java</exclude>
</excludes>
<!--并行运行-->
<parallel>methods</parallel>
<threadCount>10</threadCount>
</configuration>
</plugin>

appassembler-maven-plugin

生成启动Java应用的脚本,命令 mvn package appassembler:assemble

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.10</version>
<configuration>
<!-- Set the target configuration directory to be used in the bin scripts,默认路径是etc -->
<configurationDirectory>configuration</configurationDirectory>
<!-- 源配置文件目录,默认目录是src/main/config -->
<configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
<!--Copy the contents from configurationSourceDirectory to the target configuration directory-->
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<!-- Include the target configurationDirectory in the beginning of the classpath declaration in the bin scripts -->
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<!--assemble the artifacts in and place the bin scripts-->
<assembleDirectory>release</assembleDirectory>
<!--jar存放目录-->
<repositoryName>lib</repositoryName>
<!--lib下直接存放jar,没有路径文件夹(如com/apache)-->
<repositoryLayout>flat</repositoryLayout>
<programs>
<program>
<!--指定主类,脚本名。会生成shell/bat两种类型,也可用platforms指定运行平台-->
<mainClass>com.mycompany.app.App</mainClass>
<name>startapp</name>
</program>
</programs>
</configuration>
</plugin>

maven-assembly-plugin

对项目的源码、jar包、依赖、文档、目录等文件归档生成分发包,支持jar/war/zip/tar/tar.gz等归档格式。如写mapreduce job时可以使用生成一个jar包,包含所有的依赖,便于上传job。
命令mvn assembly:single,也可以绑定到package阶段,自动执行。下面的配置会生成如下文件:target/sample-1.0-SNAPSHOT-jar-with-dependencies.jar

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<!--使用插件提供的配置,包含jar和依赖-->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!--也可以自定义打包内容,使用descriptor指定路径-->
<!--descriptor>src/main/assembly/assembly.xml</descriptor-->
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!--目标single绑定到package阶段,package阶段自动被调用-->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

Maven常用插件的更多相关文章

  1. maven常用插件pom配置

    一.问题描述: 部署一个maven打包项目时,jar包,依赖lib包全部手动上传至服务器,然后用maven部署报错:Exception in thread "main" java. ...

  2. maven常用插件总结

    maven本质上是一个插件框架,几乎所有的功能都是通过各种各样的插件来实现的.maven默认会依据项目类型自动把构建时的各阶段(Lifecycle和phase)自动绑定(Lifecycle Mappi ...

  3. maven常用插件配置详解

    常用插件配置详解Java代码    <!-- 全局属性配置 --> <properties> <project.build.name>tools</proje ...

  4. Maven常用插件简单配置

    好久不见,甚是想念.一日不见,如隔三秋. 从春节到现在已经很久没有回归博客园了,今天回来温习一下maven常用的一些插件的配置,学东西一个很简单的诀窍就是重复重复再重复,这样一定能把知识掌握的很牢靠. ...

  5. [maven] 常用插件解析

    参考资料:http://my.oschina.net/zh119893/blog/276090 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完 ...

  6. 【转】maven常用插件介绍

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  7. Maven学习总结(22)——Maven常用插件介绍

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  8. maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项

    一.指定编译文件的编码 maven-compile-plugin <plugin> <groupId>org.apache.maven.plugins</groupId& ...

  9. maven常用插件配置

    1.maven-jar-plugin插件 <!-- 排除资源文件中的properties文件,不需要打到jar中,后面通过assembly插件打包到conf目录中 --><plugi ...

随机推荐

  1. gradle各版本下载地址

    gradle各版本下载地址:http://services.gradle.org/distributions 以前都是手动下载gradle的文件,然后修改的,今天想从一些博客网站上下载最新的gradl ...

  2. 进击的Python【第五章】:Python的高级应用(二)常用模块

    Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigPar ...

  3. VirusAnti_didiwei使用说明

    前言 前段时间说要写的一个专杀框架敌敌畏,后改为强撸敌敌畏,以彰显样本查杀时的气势,现在第一版已经完成了,如下图所示,使用的时候强烈建议控制台使用放大模式,这样就可以看见我花了半天才画好了logo , ...

  4. mybatis多表查询

    1.在类的属性里定义另一个关联类,在mapper.xml里写result-mapper加association 2.表很多的话,可以在数据库里建视图view,把不同表里需要的字段写到一张视图里 写po ...

  5. webpack 使用教程--实时刷新测试

    学习webpack,基本始终是围绕: 1.如何安装webpack 2.如何使用webpack 3.如何使用loader 4.如何使用开发服务器 可能我们会在如何使用开发服务器的时候,遇到诸如调试的相关 ...

  6. 【转】php Thread Safe(线程安全)和None Thread Safe(NTS,非 线程安全)之分

    Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...

  7. Java:单例模式的七种写法

    第一种(懒汉,线程不安全): 1 public class Singleton { 2 private static Singleton instance; 3 private Singleton ( ...

  8. Android图书应用-西游记

    下载App 屏幕截图:          功能介绍:1. 侧边滑动目录导航2. 阅读偏好设置3. 记忆阅读进度 内容介绍: 西游记,中国古典名著,内容分三大部分: 第一部分(一到七回)介绍孙悟空的神通 ...

  9. VPB和OSGGIS安装

    VPB和OSGGIS安装 转自:http://blog.sina.com.cn/s/blog_668aae780101k6pr.html 第一部分VPB安装 VirtualPlanetBuilder是 ...

  10. 不使用return false阻止event默认行为

    当我们点击一个a标签时,如果这个标签的href指向了另一个地址,那么浏览器会默认跳转到此地址.在页面中,有时我们需要触发点击事件,但是又不想触发默认行为,就需要阻止event的默认行为了. 常规做法 ...