一、maven-resources-plugin
配置描述:把web项目的输出copy到tomcat的webapp下
二、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
三、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)可以用
局部配置的
本例中,删除的是C:/a目录,即,当用户在该maven项目中执行mvn clean后,除了删除clean插件默认的project.build.directory
,project.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的目录时候用到的
(参见: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)
private File directory; private String[] includes; private String[] excludes; 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包到服务器的部署及服务器的启动和关闭等工作,方便,快速!
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到网站的目录结构中去:
参见:
1、http://www.wsria.com/archives/1335
2、http://maven.apache.org/plugins/maven-war-plugin/exploded-mojo.html#warSourceDirectory