`

大家都用什么Maven插件?及本人的几个常用插件分享

阅读更多
两个月前我只是一直知道有Maven,但从来没用过也没这个计划,直到我们的jar又多又乱,到了不理不行的地步的时候,我想到了Maven。

为了正统,我直接到Apache/Sonatype上去找资料,发现Sonatype(http://www.sonatype.com/)所提供的文档最为劲爆,很快就可以掌握Maven的使用,其中的Sonatype-maven-by-example.pdf最为直接,从单个简单项目到多项目管理,再到多项目管理的优化,无所不谈,我相信大家通过这个文档的系统学习,肯定能跟我那样,入门绝对不是问题。


我所用到的插件,拿出来晒一下,好做交流,其实用的还是很基本的能力:

1、maven-surefire-plugin:单元测试用。用法举例:
<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<parallel>methods</parallel>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>


2、maven-compiler-plugin:编译插件,方便指定目标JDK版本,以及其他一些编译细节。用法举例:
<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.3.2</version>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
					</configuration>
				</plugin>



3、maven-antrun-plugin:跑ant脚本的插件,如果原来的ant脚本还有用武之地或者有些工作还是喜欢ant来帮忙的话。用法举例:
<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.6</version>
				<executions>
					<execution>
						<phase>generate-sources</phase>
						<configuration>
							<target name="copy-beans" description="--> copy necessary beans from application">
								<echo message="copy beans from application artifact"/>
								<copy todir="${beans.copy.to.dir}">
									<fileset dir="${beans.copy.from.dir}">
											<include name="**/Resource.java" />
											<exclude name="**/*.xml" />
									</fileset>
								</copy>
								
							</target>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

因为我们设计一个applet的子项目,需要拷贝一些资源过来,而不是造成交叉依赖——大家说不定有更好的办法。

4、maven-war-plugin:webapp的必备插件,用来打包war。用法举例:
<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.1.1</version>
				<configuration>
					<!-- exclude those which shared lib 
					<packagingExcludes>
						WEB-INF/lib/nric-framework*.jar,
						WEB-INF/lib/spring-core*.jar,
						WEB-INF/lib/spring-asm*.jar,
						WEB-INF/lib/commons-*.jar,
						WEB-INF/lib/spring-aop*.jar,
						WEB-INF/lib/aopalliance*.jar,
						WEB-INF/lib/spring-beans*.jar,
						WEB-INF/lib/spring-context*.jar,
						WEB-INF/lib/spring-orm*.jar,
						WEB-INF/lib/spring-tx*.jar,
						WEB-INF/lib/ibatis*.jar,
						WEB-INF/lib/oracle*.jar,
						WEB-INF/lib/jcl-over-slf4j*.jar,
						WEB-INF/lib/slf4j-*.jar,
						WEB-INF/lib/javassist*.jar,
						WEB-INF/lib/aspectjrt*.jar,
						WEB-INF/lib/aspectjweaver*.jar,
						WEB-INF/lib/spring-jdbc*.jar,
						WEB-INF/lib/log4j*.jar,
						WEB-INF/lib/quartz*.jar,
						WEB-INF/lib/cglib*.jar,
						WEB-INF/lib/asm-*.jar,
						WEB-INF/lib/joda-time*.jar
					</packagingExcludes>-->
					<!-- Use this to include a selection of jars that will be included in the WAR -->
					<!-- 
					<packagingIncludes>
						**/*.xml,**/*.properties,**/*.class,**/*.png,**/*.css,**/*.js,**/*.jsp,
						WEB-INF/lib/spring-web*.jar
					</packagingIncludes>
					-->
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
						</manifest>
					</archive>
				</configuration>
			</plugin>

注意:我注释掉的部分一般用来做war减肥用,如果需要打包为ear的话

5、org.mortbay.jetty:jetty调试插件,用来启动web做集成测试、调试用。用法举例:
<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
				<version>7.0.1.v20091125</version>
				<configuration>
					<scanIntervalSeconds>10</scanIntervalSeconds>
					<webAppConfig>
						<contextPath>/nric-demo</contextPath>
					</webAppConfig>
				</configuration>
			</plugin>


我觉得用插件的精髓是不在于多在于合适。希望大家也来分享下。
另外,关于私服问题,我的看法是有条件上没条件就免了,可选。

补充几点心得:
1、建议在parent的pom中使用好pluginManagement和dependencyManagement,而子项目引用即可;
2、使用参数,方便管理版本和重要参数;
3、明显不用的dependency要exclude掉(使用exclusion),避免过多垃圾;
4、合理设置子项目

附上Sonatype-maven-by-example.pdf。
——说明:版权完全为Sonatype所有,并敬请大家通过正式渠道下载最新版。
分享到:
评论
10 楼 maike 2011-01-27  
编译我还是用ant 感觉maven的jar包依赖不错
9 楼 jefyjiang 2011-01-27  
用maven真方便
8 楼 cwx714 2011-01-27  
maven-dependency-plugin
maven-archetype-plugin
maven-assembly-plugin
7 楼 itstarting 2011-01-27  
unsid 写道
再推荐俩
cobertura,生成测试覆盖率报告的
cargo,自动部署到远程服务器的



第一个有点意思,学习下
第二个感觉意义不大,真部署的话,还是手动部署的放心,而平时顶多就是集成调试下
6 楼 unsid 2011-01-27  
再推荐俩
cobertura,生成测试覆盖率报告的
cargo,自动部署到远程服务器的
5 楼 itstarting 2011-01-27  
huhuanqadn 写道
直接用myeclipse的,带了m2的支持。用着挺爽的。
当然myeclipse是中国特色版



哈哈,还特色版

我电脑里有正版的,是公司concurrency license的版本,一般不用——没啥用
4 楼 huhuanqadn 2011-01-27  
直接用myeclipse的,带了m2的支持。用着挺爽的。
当然myeclipse是中国特色版
3 楼 obullxl 2011-01-26  
itstarting 写道
mgcnrx11 写道
这也是常用的插件

jetty这个lz是怎么调试debug的?

1. 安装个Sonatype的m2eclipse
update site: http://m2eclipse.sonatype.org/sites/m2e


2. 然后在DEBUG配置一个Maven build.

Debug configurations...->Maven build->new:

Goals是:jetty:run


后面的调试跟启动其它(如tomcat)的调试过程一样。


可以看看这个:http://obullxl.iteye.com/blog/715207
2 楼 itstarting 2011-01-26  
mgcnrx11 写道
这也是常用的插件

jetty这个lz是怎么调试debug的?

1. 安装个Sonatype的m2eclipse
update site: http://m2eclipse.sonatype.org/sites/m2e


2. 然后在DEBUG配置一个Maven build.

Debug configurations...->Maven build->new:

Goals是:jetty:run


后面的调试跟启动其它(如tomcat)的调试过程一样。
1 楼 mgcnrx11 2011-01-26  
这也是常用的插件

jetty这个lz是怎么调试debug的?

相关推荐

    eclipse安装的maven插件

    安装Maven插件的过程通常分为以下几步: 1. **下载Maven**:首先,你需要从Apache官方网站(https://maven.apache.org/download.cgi)下载最新版的Maven。解压下载的文件到你选择的目录。 2. **配置环境变量**:将...

    jenkins 离线安装maven插件集合jenkins-maven.zip

    离线安装Jenkins插件的过程分为以下几个步骤: 1. **下载插件**: 在有网络的环境里,访问Jenkins官方网站的插件页面,找到Maven插件并下载对应的版本。由于本例中已经提供了"jenkins-maven.zip",说明插件已经提前...

    Maven插件手动下载

    手动下载Maven插件通常包括以下几个步骤: 1. **确定插件**:首先,你需要知道需要下载的插件名称和版本。这通常可以从项目的POM.xml文件中找到,或者根据构建需求来确定。 2. **访问Maven仓库**:Maven的中央仓库...

    安装Jenkins的git和maven插件

    总结来说,安装Jenkins的Git和Maven插件涉及以下几个关键步骤: 1. 下载Git Plugin和Maven Integration Plugin的.hpi文件。 2. 在Jenkins管理界面手动上传插件并安装。 3. 配置Git全局设置和SSH密钥。 4. 配置Maven...

    Eclipse中Maven插件

    在Eclipse中配置Maven插件涉及到以下几个关键步骤: 1. **安装Maven插件**:打开Eclipse,选择“Help” &gt; “Eclipse Marketplace”,在搜索框输入“maven”找到M2E插件,点击“Install”按照提示完成安装。如果无法...

    maven及eclipse插件下载和详细环境搭建步骤

    这涉及到几个关键步骤: 1. **Maven下载与安装**:你可以从Apache官方网站下载最新版本的Maven,如`apache-maven-3.3.9-bin.zip`。下载后解压到你选择的目录,并将解压后的bin目录添加到系统的PATH环境变量中,以便...

    maven插件 免费

    Maven插件是构建Java项目的重要工具,特别是在MyEclipse集成开发环境中,它的使用极大地简化了项目的构建、管理和部署过程。Maven是一个项目管理工具,它遵循约定优于配置的原则,通过一个项目对象模型(Project ...

    Maven 自定义Zip插件

    创建自定义Zip插件涉及以下几个关键步骤: 1. **定义Mojo(Maven Goal)**:Mojo是Maven插件的基本执行单元,类似于一个Java方法。你需要定义一个新的Mojo,指定其目标(goal)、执行阶段(phase)以及参数。例如,...

    自定义maven插件:自动生成API的word文档源代码

    使用自定义Maven插件生成API文档有以下几个显著优点: - **自动化**:减少了手动编写文档的时间,提高了开发效率。 - **一致性**:通过模板保证了文档的格式统一,提升了专业度。 - **易维护**:当接口或参数发生...

    eclipse sdk 3.7.2 的maven插件

    终于被我找到了一个maven插件包。配置好后,一切正常 eclipse sdk 3.7.2 的maven插件eclipse sdk 3.7.2 的maven插件eclipse sdk 3.7.2 的maven插件eclipse sdk 3.7.2 的maven插件eclipse sdk 3.7.2 的maven插件

    MAVEN包和插件

    在这个压缩包中,包含了几个与Maven相关的PDF文件,这些文件将帮助我们深入理解Maven的使用及其在实际开发中的应用。 首先,"springdatajpa实战.pdf"可能是关于Spring Data JPA的实战指南。Spring Data JPA是Spring...

    eclipse maven svn 插件 离线安装

    在IT行业中,开发人员经常需要使用各种工具来提高效率,其中Eclipse是一个广泛使用的Java集成开发环境(IDE),Maven是构建和管理Java项目的重要工具,而Subversion(SVN)则是版本控制系统,用于跟踪代码的修改。...

    Mybatis+Maven插件

    在Java开发中,Mybatis的使用通常涉及到以下几个核心知识点: 1. **Mybatis配置**:首先,你需要在项目的`resources`目录下创建`mybatis-config.xml`,这是Mybatis的全局配置文件,包含了数据源、事务管理器等信息...

    maven插件安装和配置步骤.docx

    在开始 Maven 及其插件的安装配置之前,我们需要确保已经正确安装了以下几个基础组件: - **JDK**:Java 开发工具包,确保系统环境变量中已经配置了正确的 JAVA_HOME。 - **Eclipse**:集成开发环境,用于编写 Java ...

    eclipse maven 离线插件

    首先,安装Eclipse Maven离线插件涉及以下几个步骤: 1. **更新Eclipse Marketplace**:确保你的Eclipse安装了最新的Marketplace Client。进入`Help` &gt; `Eclipse Marketplace`,如果提示更新,就点击`Update`。 2....

    eclipse maven插件

    使用Eclipse Maven插件有以下几个主要优势: 1. **依赖管理**:M2E会自动解析POM.xml中的依赖关系,下载并管理所需的jar包,避免了手动添加库的繁琐工作。 2. **构建生命周期**:Eclipse中的Maven插件支持Maven的...

    maven插件+eclipse

    在Eclipse中使用M2E有以下几个关键点: 1. 安装M2E插件:通过Eclipse的内置软件站点Marketplace搜索并安装Maven Integration for Eclipse插件。 2. 创建Maven项目:在Eclipse中选择“File” &gt; “New” &gt; “Other”...

    maven plugin打包下载

    生命周期包括几个阶段(phases),如`compile`、`test`、`package`等。当执行一个生命周期阶段时,与其关联的所有插件目标都会被执行。例如,执行`mvn package`命令会触发`package`阶段,包括编译、测试和打包等步骤...

    android-maven-gradle-plugin,与android库项目兼容的gradle的maven插件.zip

    在实际应用中,Android Maven Gradle 插件的使用通常包括以下几个步骤: 1. 在项目的`build.gradle`文件中添加插件依赖: ```groovy buildscript { repositories { jcenter() } dependencies { classpath '...

Global site tag (gtag.js) - Google Analytics