`

Maven常用插件配置(转)

阅读更多

本文转自:http://blog.csdn.net/lslxdx/article/details/7237406

 

一、maven-resources-plugin

配置描述:把web项目的输出copy到tomcat的webapp下

 

[html] view plaincopy
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-resources-plugin</artifactId>  
  4.     <version>2.5</version>  
  5.     <executions>  
  6.         <execution>  
  7.             <id>deploy-website</id>  
  8.             <phase>package</phase>  
  9.             <goals>  
  10.                 <goal>copy-resources</goal>  
  11.             </goals>  
  12.             <configuration>  
  13.                 <outputDirectory>${server_home}/webapps/${project.build.finalName}</outputDirectory>  
  14.                 <resources>  
  15.                     <resource>  
  16.                         <directory>${project.build.directory}/${project.build.finalName}</directory>  
  17.                     </resource>  
  18.                 </resources>  
  19.             </configuration>  
  20.         </execution>  
  21.     </executions>  
  22. </plugin>  


 

二、maven-antrun-plugin

配置描述:在maven中使用antrun调用bat文件

(我这里调用的是tomcat的startup.bat文件,但是没有成功启动tomcat,提示说环境变量没配置,可我双击运行startup.bat将就可以运行,奇怪了……)

(现在知道原因了:antrun运行的bat文件,实际上是在${basedir}上运行bat文件里的内容,而tomcat的startup.bat文件在运行时会调用同目录下的其他bat文件,而这些bat文件在${basedir}目录下不存在!

解决方法:使用令一个bat文件,如mystartup.bat运行startup.bat,注意在运行startup.bat之前,需要在mystartup.bat文件中把目录切换到startup.bat所在的目录,搞定!

具体做法,参见:使用Maven的antrun插件启动Tomcat的两种方法:http://blog.csdn.net/lslxdx/article/details/7245695

参见:http://markmail.org/message/c3igpnp7dvkajsrl

 

 

[html] view plaincopy
  1. <plugin>  
  2.     <artifactId>maven-antrun-plugin</artifactId>  
  3.     <executions>  
  4.       <execution>  
  5.         <id>start-server</id>  
  6.         <phase>package</phase>  
  7.         <configuration>  
  8.           <tasks>  
  9.                <exec  
  10.                  executable="${server_home}/bin/startup.bat"  
  11.                  >  
  12.                </exec>  
  13.           </tasks>  
  14.         </configuration>  
  15.         <goals>  
  16.           <goal>run</goal>  
  17.         </goals>  
  18.       </execution>  
  19.     </executions>  
  20. </plugin>  


 

三、maven-clean-plugin

配置描述:maven提供了很多有用插件,如mvn clean使用到的maven-clean-plugin,mvn compile使用到的maven-compile-plugin等,这些插件可以通过pom文件绑定到maven三个生命周期(life-cycle)的各阶段(phase)上,也可以在命令行(如Windows下的cmd)中单独由mvn命令调用,如mvn clean,可以调用maven-clean-plugin的clean目标(goal)。对于绑定到各阶段(phase)运行的插件的参数(parameter)可以用<configuration>标签(tag)配置,但是在该插件在命令行下单独由mvn命令调用,那么这个参数该如何使用pom文件配置呢?比如,在一个J2EE项目中,想使用mvn clean命令清除target里的内容的同时,也清除tomcat/webapp下的相应目录,该怎么办呢?这就需要在pom文件中对插件进行全局配置了。

 

[html] view plaincopy
  1. <plugin>  
  2.     <artifactId>maven-clean-plugin</artifactId>  
  3.     <configuration>  
  4.         <verbose>true</verbose>  
  5.         <filesets>  
  6.             <fileset>  
  7.                 <directory>c:/a</directory>  
  8.             </fileset>  
  9.       </filesets>  
  10.     </configuration>  
  11. </plugin>  

插件的配置分为局部配置和全局配置,本文中对antrun和resource插件的配置是局部配置,对clean插件的配置是全局配置,能看出差别吧?

 

局部配置的<configuration>标签(tag)放在<execution>标签(tag)里边,而全局配置的<configuration>标签(tag)则放在<plugin>标签(tag)里边,因为全局配置里根本就没有<execution>标签(tag),因为全局配置针对的是该插件的全部目标(goal)配置的!

本例中,删除的是C:/a目录,即,当用户在该maven项目中执行mvn clean后,除了删除clean插件默认的project.build.directoryproject.build.outputDirectory,project.build.testOutputDirectory, 和 project.reporting.outputDirectory目录外

(参考:http://maven.apache.org/plugins/maven-clean-plugin/clean-mojo.html#filesets),

还会删除C:/a目录。


注意,该配置仅针对本项目有效,即,用户在当前项目下使用mvn clean时,会删除C:/a目录;当用户在其他没有如此配置clean插件的maven项目中执行mvn clean时,不会删除C:/a目录。

设置fileset的目录时候用到的<directory>标签不能乱用,比如<dir>,否则maven没法识别,因为maven使用pom设置插件参数(parameter)的时候用的是设置java bean的方式,之所以用<directory>标签,是因为在org.apache.maven.plugin.clean.Fileset.java中,Fileset类只有如下成员变量:

(参见:http://search.maven.org/remotecontent?filepath=org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1-source-release.zip)

 

[java] view plaincopy
  1. private File directory;  
  2.   
  3. private String[] includes;  
  4.   
  5. private String[] excludes;  
  6.   
  7. private boolean followSymlinks;  

相关阅读:

 

1、Maven clean plugin - delete additional directories

http://maven.40175.n5.nabble.com/Maven-clean-plugin-delete-additional-directories-td122794.html

 

四、cargo-maven2-plugin

配置描述:使用maven做web项目时,cargo插件可以帮助你完成WAR包到服务器的部署及服务器的启动和关闭等工作,方便,快速!

 

[html] view plaincopy
  1. <plugin>  
  2.     <groupId>org.codehaus.cargo</groupId>  
  3.     <artifactId>cargo-maven2-plugin</artifactId>  
  4.     <version>1.2.0</version>  
  5.     <configuration>  
  6.         <container>  
  7.             <containerId>${server_name}</containerId>  
  8.             <home>${server_home}</home>  
  9.         </container>  
  10.         <configuration>  
  11.             <type>existing</type>  
  12.             <home>${server_home}</home>  
  13.             <properties>  
  14.                 <cargo.servlet.port>8088</cargo.servlet.port>  
  15.             </properties>  
  16.         </configuration>  
  17.     </configuration>  
  18. </plugin>  

注意,如果你的tomcat服务器的端口使用的不是默认的8080(如本例中的8088),则需要使用cargo.servlet.port参数将cargo的监听端口也配置到tomcat的那个监听端口(如本例中的8088),否则使用mvn cargo:run启动的服务器会在120000毫秒(120秒)后自动关闭!

 

mvn cargo:start命令完成WAR包部署后,启动服务器,然后会将服务器立即关掉;

mvn cargo:run命令完成WAR包部署后,启动服务器,直到你Ctrl+C将服务器关掉;

mvn cargo:stop命令关闭服务器。

参考:http://cargo.codehaus.org/Maven2+plugin

 

五、maven-war-plugin

配置描述:当你的pom文件中把你的当前项目的packaging配置为war后,maven会使用该插件将当前项目生成war文件,但是有时候我们不想要war文件,只想让maven生成当前项目的网站目录结构,尤其是在调试的时候,因为生成war文件的同时,会生成当前项目的网站目录结构,这样一来,浪费了打包的时间和磁盘的空间!

maven使用war插件生成war文件所用的目标(goal)为war,从帮助文档中可以看出,war插件还有一个目标(goal)是exploded,即,只生成目录结构,而不生成war文件。

参见:http://maven.apache.org/plugins/maven-war-plugin/plugin-info.html

可以在当前目录下直接使用mvn war:exploded,就能生成当前项目的网站目录结构。

 

使用mvn war:exploded生成网站目录结构的时候,war插件会把src/main/webapp目录下的内容全部copy到target/${finalName}目录下,但是,有时候webapp里的一些资源部需要copy,比如我会在src/main/webapp的js目录下放很多jQuery的插件,其中包括插件的帮助文档;但是我可能只会用到其中一部分插件。所以在生成网站目录结构的时候,我根本不需要把src/main/webapp的js目录下的所以文件都copy到target/${finalName}目录中,这时候就需要对exploded目标(goal)进行资源过滤了——不把没用的资源copy到网站的目录结构中去:

 

[html] view plaincopy
  1. <plugin>  
  2.     <artifactId>maven-war-plugin</artifactId>  
  3.     <configuration>  
  4.         <warSourceExcludes>js/参考/**</warSourceExcludes>  
  5.     </configuration>  
  6. </plugin>  

说明:上面的配置,使用了war插件的warSourceExcludes参数,该参数是一个String类型,需要把被排除的路径或文件使用逗号(comma)间隔开。

 

参见:

1、http://www.wsria.com/archives/1335

2、http://maven.apache.org/plugins/maven-war-plugin/exploded-mojo.html#warSourceDirectory

分享到:
评论

相关推荐

    nnzbz#notes#maven常用插件1

    1.1. 参考配置 1.3. 版本范围规则 1.4. 扩展插件 2.1. 项目满足条件 2.2. 命令行运行 2.2.1. 更新全部子项目的版本号 2.2.2.

    Maven 配置文件替换插件,实现不同环境打包不同配置 丢弃profile冗长配置的 不二之选.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    apache-maven-3.9.5-bin windows 64bit x86下载

    Maven可以简化项目的构建和依赖管理,并提供...Maven自带了许多常用的插件,如编译、测试、打包插件等。 5、文档生成:Maven可以使用插件来生成项目的文档,如JavaDoc文档、站点文档等。 6、多模块支持:Maven支持多

    maven的安装、配置、以及依赖、插件和模板相关内容的演练.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    smart-doc官方maven插件.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    Maven插件不能安装问题.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    maven-mydalgen-plugin是mybatis代码自动生成的Maven插件,简化sql书写.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    Mybatis-Plus Maven 代码生成插件.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    ER数据库模型转换jpa entity实体maven插件.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    Maven 中央仓库搜索的 Alfred Workflow 插件.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    maven项目中pom.xml配置文件

    maven项目中pom.xml配置文件,包含常用的mybatis,log4j,jdk,mysql连接等依赖

    架构必备 - 多工程属性文件统一管理(创建,替换)Maven插件, 数据来源支持 文件和数据库两种方式.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    Windows下配置好的apache-maven-3.9.2

    Maven使用一种被称为"项目对象模型"(Project Object Model,POM)的配置文件来描述项目的结构和依赖关系。在POM中,您可以定义项目的基本信息、依赖项、插件和构建配置等。 Maven提供了一组标准的生命周期和插件,...

    maven使用详解

    1、 maven技术简介 2、 maven快速入门 (安装配置、 常用命令) 3、 在Eclipse基于(插件)maven构建项目 4、 maven配置详解 (难点) 案例:将仓库管理系统,重构maven结构

    Jenkins从环境配置到项目开发视频教程

    5. Jenkins+Maven配置 章节三:Jenkins+Web项目持续集成 1. Jenkins创建流水线项目 2. Jenkins流水线脚本语法 3. 常用的Jenkins构建触发器 4. Jenkins整合SonarQube代码审查 5. Jenkins整合Email完成构建结果发布 ...

    Maven2 的新特性.7z

    Maven1 和 Maven2 主要配置文件的对比: • Maven1:project.xml、maven.xml、project.properties和build.properties。 • Maven2:pom.xml和settings.xml。 POM是Maven的核心对象模型,在Maven2中POM已由project....

    mybatis-generator-yml-maven-plugin:MyBatis Generator yml配置,lombok插件,swagger插件支持

    支持方便地配置常用插件,例如注释生成,Lombok,招摇等。 介绍使用某些配置或插件的好处 尝试找到适合不同情况的最佳配置 内容 环境要求 确保已安装Java8和IDE(例如Intellij Idea和Eclipse) 项目中使用了Maven ...

    帮助您快速搭建基于YMP框架的各种Java工程结构的Maven扩展工具.zip

    将下载的压缩包解压到开发工具常用的目录,例如D:\developer\apache-maven-3.9.1-bin。 配置系统环境变量。在Windows系统中,进入“高级系统设置”,点击“环境变量”。在“系统变量”中编辑Path,添加Maven的bin...

    Maven学习精华教程-电子书

    此文件为exe格式电子书,无需安装任何阅读软件就可以打开,由mybase笔记软件生成。 此电子书详细介绍了项目自动化构建工具Maven的使用,内容清晰简洁明了,易于...插件_常用插件列表 仓库_概念与配置 仓库_私服_Nexus

Global site tag (gtag.js) - Google Analytics