本文转自:http://blog.csdn.net/lslxdx/article/details/7237406
一、maven-resources-plugin
配置描述:把web项目的输出copy到tomcat的webapp下
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.5</version>
- <executions>
- <execution>
- <id>deploy-website</id>
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${server_home}/webapps/${project.build.finalName}</outputDirectory>
- <resources>
- <resource>
- <directory>${project.build.directory}/${project.build.finalName}</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </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
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>start-server</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <exec
- executable="${server_home}/bin/startup.bat"
- >
- </exec>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </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文件中对插件进行全局配置了。
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <configuration>
- <verbose>true</verbose>
- <filesets>
- <fileset>
- <directory>c:/a</directory>
- </fileset>
- </filesets>
- </configuration>
- </plugin>
插件的配置分为局部配置和全局配置,本文中对antrun和resource插件的配置是局部配置,对clean插件的配置是全局配置,能看出差别吧?
局部配置的<configuration>标签(tag)放在<execution>标签(tag)里边,而全局配置的<configuration>标签(tag)则放在<plugin>标签(tag)里边,因为全局配置里根本就没有<execution>标签(tag),因为全局配置针对的是该插件的全部目标(goal)配置的!
本例中,删除的是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的目录时候用到的<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)
- 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包到服务器的部署及服务器的启动和关闭等工作,方便,快速!
- <plugin>
- <groupId>org.codehaus.cargo</groupId>
- <artifactId>cargo-maven2-plugin</artifactId>
- <version>1.2.0</version>
- <configuration>
- <container>
- <containerId>${server_name}</containerId>
- <home>${server_home}</home>
- </container>
- <configuration>
- <type>existing</type>
- <home>${server_home}</home>
- <properties>
- <cargo.servlet.port>8088</cargo.servlet.port>
- </properties>
- </configuration>
- </configuration>
- </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到网站的目录结构中去:
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <warSourceExcludes>js/参考/**</warSourceExcludes>
- </configuration>
- </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
分享到:
相关推荐
本文将详细介绍Maven中的常用插件及其功能。 1. Maven Assembly Plugin Maven Assembly 插件允许开发者将项目的输出,包括依赖、模块、网站文档和其他文档集成到一个单一的文档中,以便于定制打包。这个插件支持...
** Maven仓库插件的常用目标 ** 1. `deploy`: 这个目标用于将最终的工件和相关的POM部署到远程仓库。 2. `install`: 它将项目工件和相关依赖安装到本地仓库,以便其他项目可以引用。 3. `deploy-file`: 该目标允许...
在本文中,我们将深入探讨Maven的核心功能、常用插件以及如何配置和使用这些插件。 1. **Maven核心功能** Maven通过Project Object Model (POM)来描述项目,POM是一个XML文件,包含了项目的配置信息,如依赖、构建...
** 常用 Maven 插件及其作用 ** - `maven-compiler-plugin`:负责编译源代码。 - `maven-resources-plugin`:处理资源文件,如复制到目标目录。 - `maven-surefire-plugin`:运行单元测试。 - `maven-jar-plugin`:...
6. **验证Maven配置**:重启Eclipse后,转到“Window” -> “Preferences” -> “Maven”,确认Maven的安装路径已经正确设置。如果你没有自定义的Maven安装,Eclipse通常会自动检测到系统中的Maven。 7. **创建或...
2. 继承(inheritance):子项目可以从父项目继承POM信息,如依赖和插件配置。 六、Maven的settings.xml 此文件用于配置Maven的行为,如本地仓库路径、代理设置、镜像配置以及服务器认证信息。 七、Maven的命令行...
Maven 插件解析 Maven 作为一个插件框架,其核心并不执行任何具体的构建任务,而是交给插件来完成。每个任务对应了一个...了解 Maven 插件的基本概念和常用插件能够帮助我们更好地使用 Maven,并避免重新发明轮子。
标题 "常用eclipse插件更新地址及MAVEN设置" 涉及到的是关于Eclipse IDE的插件管理和Maven的配置,这是两个在软件开发中至关重要的环节。Eclipse是一个广泛使用的Java集成开发环境,而Maven是项目管理和构建工具,...
3. 配置灵活:Maven插件支持自定义配置,允许开发者针对特定项目需求定制插件的行为。 4. 文档生成:Maven可以生成API文档(如Javadoc)和其他形式的项目文档,方便团队成员之间的交流和理解。 二、Maven插件工作...
8. **插件管理**:Maven的强大之处在于其丰富的插件生态系统,通过POM文件可以配置使用特定的Maven插件,如Surefire Plugin用于运行单元测试,Failsafe Plugin用于集成测试。Eclipse插件提供了方便的插件管理界面,...
以下是对标题和描述中提及的Maven常用命令的详细解释: 1. `mvn clean`:这个命令用于清理项目,删除`target`目录下的所有生成物,包括编译后的类文件、测试结果等。 2. `mvn compile`:编译项目的源代码,将`src/...
首先,你需要在项目的pom.xml文件中添加MyBatis Generator的依赖和插件配置,配置包括数据库连接信息、生成的文件路径、以及需要逆向的表名等。一旦配置完成,运行Maven的generate目标,插件就会根据配置自动生成...
以下是对"Maven常用知识整理"的详细阐述: 1. **项目依赖管理**:Maven通过pom.xml文件来管理项目的依赖关系,使得开发者可以声明项目需要的库,Maven会自动下载并管理这些库。依赖的版本冲突问题,Maven会按照一定...
1.1. 参考配置 1.3. 版本范围规则 1.4. 扩展插件 2.1. 项目满足条件 2.2. 命令行运行 2.2.1. 更新全部子项目的版本号 2.2.2.
maven 常用命令集合 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于 Java 项目的构建、测试和部署。Maven 的强大之处在于其提供了一种标准化的方式来构建、测试和部署项目,...
**2.3 插件配置** 插件的配置通常包括插件的ID、版本以及一些特定的配置参数。配置参数用于定制插件的行为,如上述示例中的`<source>`和`<target>`配置项。 #### 三、总结 通过本篇实战笔记,我们了解了Maven如何...
这篇博文主要讨论了`pom.xml`文件中的常用配置,以帮助开发者更好地理解和使用Maven。 首先,`<project>`是`pom.xml`的根元素,它包含了关于项目的所有信息。其中,`<modelVersion>`定义了pom模型的版本,通常是...
在Maven项目中,配置文件主要体现在`pom.xml`,这是Maven的核心文件,包含了项目信息、构建设置、依赖关系和插件配置等。通过`pom.xml`,我们可以指定项目的依赖库,构建目标,以及执行的构建过程。 2. Spring配置...
Maven内置了许多常用插件,例如: - `maven-compiler-plugin`:负责源代码的编译。 - `maven-surefire-plugin`:执行单元测试。 - `maven-resources-plugin`:处理资源文件,如复制到目标目录。 - `maven-jar-plugin...
在本文中,我们将深入探讨"MAVEN-配置apache-maven-3.5.2.zip"的相关知识点。 1. **Maven的安装与配置** - 下载:Apache Maven 3.5.2是Maven的一个稳定版本,用户可以从Apache官方网站下载这个zip文件。 - 解压:...