Maven学习第3期---m2eclipse使用

一、m2eclipse简介

和Nexus一样,m2eclipse也是Sonatype出品的一款开源工具,它基于Eclipse Public License-v.10开源许可证发布,用户可以免费下载并使用,还可以查看其源代码m2 eclipse的官方站点地址为http://m2eclipse.sonatype.org/

m2ecIipse为Eclipse环境提供了全面丰富的Maven集成 它的主要功能如下:

■ 创建和导人Maven项目

■ 管理依赖并与Eclipse的cIasspath集成

■ 自动下载依赖

■ 自动解析依赖的sources 与javadoc包

■ 使用Maven Archetype创建项目

■ 浏览与搜索远程Maven仓库

■ 从Maven POM具体化一个项目

■ 从SCM仓库签出Maven项目

■ 自动适配嵌套的多模块Maven项目至Eclispe

■ 集成Web Tools Projects (WTP)

■ 集成Subclipse

■ 集成Mylyn

■ 可视化POM编辑

■ 图形化依赖分析

二、m2eclispe的简单使用

2.1 新建Maven项目

在m2eclipse中新建一个Maven十分简单,在菜单栏中依次选择File→New→Other。这时可以看到下图所示的向导:

选择Maven Project之后,向导会提示用户选择是否跳过archetype而创建一个最简单的Maven项目,这个最简单项目将只包含最基本的Maven项目目录结构,读者可以根据自己的需要进行选择。

如果选择使用Archetype创建项目,单击Next按钮之后,向导会提示用户选择Archetype,如下图所示

如上图所示,有4个Archetype Catalog可供用户选择,包括maven-archetype-plugin内置的Intemal、本地仓库的Default Local、m2eclipse下载到仓库索引中包含的Nexus Indexer,以及所有这3个合并得到的All Catalogs。如果对Archetype Catalog不是很清楚。一般来说,只需要选择Internal。然后再选择一个Archetype,如maven-archetype-quiCk-start,最后单击Next按钮。

接下来要做的就是输入项目坐标Group Id、Artifact Id、Version以及包名。这一个步骤与在命令行中使用Archetype创建项目类似,如果Archetype有其他可配置的属性,用户也可以在这里一并配置,如下图所示。

单击Finish按钮之后,m2eclipse就会快速地在工作区创建一个Maven项目,这同时也是一个Eclipse项目。

2.2 导入Maven项目

较之于创建新的Maven项目,实际工作中更常见的是导人现有的Maven项目。m2eclipse支持多种导入的方武,其中最常用的是导人本地文件系统的Maven项目以及导入SCM仓库中的Maven项目。

单击菜单栏中的File,然后选择Import开始导人项目,如下图所示:

从上图中可以看到在Maven类中有4种导人方式,常用的就是第一种和第二种,即导入SCM仓库中的Maven项目和导入本地文件系统的Maven项目。图中的Install or deploy an artifact to a Maven repository能让用户将任意的文件安装到Maven的本地仓库。如果该文件没有对应的POM,则需要为其定义Maven坐标。 图中的Materialize Maven Projects能让用户导人第三方的Maven项目,用户只需要提供一些关键字如nexus-api,然后选择要导人的项目,m2eclipse就能基于索引找到其对应的POM信息。如果该POM中包含了SCM信息,m2eclipse就能直接下载该项目的源码并导人到m2eclipse中。当用到某个第三方类库,同时想研究其源码的时候,这一特性就非常有用,你不再需要打开浏览器去寻找该项目的信息,简单地在m2eclipse中操作几步就能完成第三方项目的导人。当然,这一特性的前提是第三方类库提供了正确的SCM信息。大多数开源项目在往Maven中央仓库提交构件的时候都会提供完整的信息,但也有例外,为了避免信息不完整的项目进入Maven中央仓库,最新的规则已经强制要求提交者提供完备的信息,如SCM、许可证以及源码包等。这无疑能帮助m2eclipse表现得更好。

2.2.1 导入本地Maven项目

现在详细介绍一下如何导人本地Maven项目:选择上图中的Existing Maven Projects选项,然后在弹出的对话框中选择本地项目所在的目录,如下图所示。m2eclipse能够自动识别出目录中所包含的Maven项目,如果发现是多模块项目,则会列出所有的模块。用户可以根据自己的需要选择要导人的模块,然后单击Finish按钮二m2eclipse会执行导人项目信息、更新下载项目依赖,以及重建工作区等操作,根据实际项目的情况,这个过程可能花费几十秒到十几分钟:

2.2.2从SCM仓库导入Maven项目

通常我们的项目源代码都存储在SCM仓库中,例如Subversion仓库,读者当然可以使用Subversion命令将项目源码签出到本地,然后再导入到m2eclipse中,但m2eclipse支持用户直接从SCM仓库中导人Maven项目。

要从SCM导人Maven項目,首先需要确保安装了集成SCM的Eclipse插件,如Subclipse,还需要m2eclipse的附属组件Maven SCM Integration以及对应的SCM handler,如集成Subclipse的Maven SCM handler for Subclipse。如果这些组件都得以正确安装,就可以选择下图中的Check out Maven Projects fromSCM:

在单击Next按钮之后,选择SCM类型并输入SCM地址,如下图所示:

单击Next按钮之后,用户可以选择项目导入的本地位置,然后单击Finish按钮,m2elipse就会在后台使用SCM 工具签出项目许执行Maven构建。

三、访问Maven库

有了m2eclipse,用户可以直接在Eclipse中浏览本地和远程的Maven仓库,并且能够基于这些仓库的索引进行构件搜索和Java类搜索。这样就免去了离开Eclipse访问本地文件系统或者浏览器的麻烦,提高了日常开发的效率。

3.1 Maven仓库视图

m2eclipse提供了Maven仓库视图,能让用户方便地浏览本地及远程仓库的内容,不过默认情况下该视图不被开启。要开启Maven仓库视图,依次选择Eclipse菜单栏中的Windows→Show View→Other选项,Eclipse会弹出一个对话框让用户选择要打开的视图,选择Maven类下的Maven Repositories,如下图所示:

这时可以在Eclipse窗口下方看到Maven仓库视图,这个视图中包含了4类Maven仓库,分别为:

■ 本地仓库

■ 全局仓库

■ 项目仓库

■ 自定义库

如下图所示:

其中,本地仓库包含了Maven的本地仓库以及当前Eclipse工作区的项目;全局仓库默认是Maven中央仓库,但是如果在settings.xml中设段了镜像,全局仓库就会自动变更为镜像仓库。最后,如果当前Maven项目的pom. xml中配置了其他仓库,它们就会被自动加入到项目仓库这一类中。这些仓库的信息来源于用户的settings. xml文件和工作区中Maven项目的pom.xml文件。

用户可以以树形结构快速浏览仓库的内容,双击叶子节点,打开构件对应的POM文件,如下图所示。

大家可能已经猜到,m2eclipse其实不会真正地去存储所有仓库的内容,那样需要消耗大量的磁盘及网络带宽。因此与Nexus一样,m2eclipse使用nexus-indexer索引仓库内容的信息。以全局仓库central为例,用户在首次使用m2eclipse的仓库浏览及搜索功能之前,需要构建该仓库的索引,在如下图所示的仓库上右击。

快捷菜单中的Rebuild Index让m2eclipse重新下载完整的远程索引,由于当前仓库是central,索引文件较大,因此重建该索引会消耗比较长的时间。Update Index则让m2eclipse以增量的方式下载索引文件。如果是本地仓库,Update Index将无法使用,而Rebuild Index的效果是重新遍历本地仓库的文件建立索引。

上图中的菜单还有几个选项,Disable Index Details让m2eclipse关闭该仓库的索引,从而用户将无法浏览该仓库的内容,或者对其进行搜索。Minimum Index Enabled表示只对仓库内容的坐标进行索引,而Enable Full Index不仅索引仓库内容的坐标,还索引这些文件所包含的Java类信息,从而能够支持用户搜索仓库中的Java类.

3.2 搜索构建和java类

有了仓库索引之后,用户就可以通过关键字搜索Maven构件了。单击Eclipse菜单栏中的Navigate,再选择Open Maven POM选项,就能得到构件搜索框。输入关键字后就能得到一个结果列表,还可以点击列表项进一步展开以查看版本信息,如下图所示。双击某个具体版本的构件,能让m2eclipse直接打开对应的POM文件。

如果为仓库开启了Enable Full Indexdt选项,也就是说索引中包含Java类型信息,则就可以通过Java类名的关键字寻找构件。单击Eclipse菜单栏中的Navigate,再选择Open type from maven就能得到类搜索框。输入关键字后,就能得到下图所示的搜索结果。同样,用户可以单击列表项展开其版本,还可以双击具体版本打开其POM。这样不用离开Eclipse,用户就能随时搜索想要使用的类库以及Java类,m2eclipse仅仅要求用户提供一些必要的关键字,这无疑是非常方便的。

四、管理项目依赖

添加Maven依赖的传统做法是先搜索得到依赖的坐标,然后配置项目的pom. xml文件,加入dependency元素。当然,在m2eclipse中也可以这样做,不过m2eclipse提供了更方便的添加依赖的方法,用户直接根据关键字搜索依赖并从结果中选择即可。此外,m2eclipse还提供了丰富的可视化界面帮助用户分析项目中的各种依赖以及它们之间的关系。

4.1 添加依赖

在m2eclipse中有多种添加依赖的方法,直接编辑pom.xml是一种,不过这里要讲的是另外两种更方便的做法。

第一种

首先用户可以在项目上或者pom. xml上右击,然后选择Maven,再选择Add Depenclency添加依赖,如下图所示:

在弹出的对话框中,用户只需要输入必要的关键字,然后选择要添加的依赖及版本,并且设定正确的依赖范围,单击OK按钮之后,依赖就被自动加入到pom.xnil中,如下图所示,就为项目添加了javax.servlet:servlet-api:2.5这样一个依赖,并且在图的下方选择了provided这样的一个范围。

第二种

第二种快速添加依赖的方式是使用m2eclipse的POM编辑器。默认情况下,用户双击项目的pom.xml就能打开POM编辑器,POM编译器下方有很多选项卡,包括概览、依赖、插件、报告、依赖层次、依赖图、Effective POM等。其中,依赖(Dependencies)一项可以用来添加、删除和编辑依赖,如下载所示。

注意:如果,双击看不到上面的界面。可能是因为,安装的m2e插件本身就是不全的,里面根本没有pom editor。所以需要下载pom editor的zip包:

http://download.csdn.net/detail/honestjiang/8508393

解压之后,直接放到原来那个m2e的插件包 的plugin下面即可,即m2eclipse\eclipse\plugins\org.eclipse.zest.XXX的两个zip,重启之后,右 键pom.xml即有pom editor打开方式了。

单击上图中上方的Add按钮,就能得到如下图所示的添加依赖对话框:

此外,从图中还可以看到,用户可以查看依赖的细节并对其进行编辑。添加项目依赖之后,如果m2eclipse没有自动将依赖更新至项目的构建路径,用户可以强制要求m2eclipse更新,方法是在项目或者pom. xml上右击,选择Maven,再选择Update Dependencies或ctrl+S保存。

4.2 分析依赖

介绍了如何使用maven-dependency-plugin分析并优化项目的依赖,Maven用户可以在命令行以树状的形式查看项目的依赖以及它们之间的关系;有了m2eclipse,这种可视化的分析将更为清晰和直观。

开启POM编辑器中的依赖层次项(Dependency Hierarchy),就能看到图下图所示的依赖层次图。

上图中左边列表显示了项目的树形依赖层次,右边列表则是所有Maven最终解析得到的依赖。默认情况下,两个列表都会显示依赖的artifact、versIon以及scope。要查看依赖的groupld,可以单击列表上方右起第二个按钮Show Groupld。

有了这样一个依赖层次图,用户就能很清晰地看到所有依赖是如何进入到项目中来的,可能这是个直接依赖,那么在左边的它就是个顶层节点;可能这是个传递性依赖,那么这个树形层次就能够告诉用户传递路径是什么;如果这个依赖是同一Maven项目的另外一个模块,那么它的图标将与其他依赖不同,而是一个文件夹的样子,如果用户单击右边已解析依赖列表中的任意一项,左边就会自动更新为该依赖的传递路径。

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【Sunddenly】。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利

时间: 2024-07-29 14:18:51

Maven学习第3期---m2eclipse使用的相关文章

Maven学习第4期---Maven简单使用

一.Maven常用命令 在学习使用Maven构建项目之前,先来了解一下Maven一些实用的命令.mvn的命令有很多,在项目开发中,理解了下面的几个常用命令后,运用maven就基本没有问题了.Maven常用的命令如下: 1.1 常用的mvn命令 mvn archetype:create 创建 Maven 项目mvn compile 编译主程序源代码,不会编译test目录的源代码.第一次运行时,会下载相关的依赖包,可能会比较费时mvn test-compile 编译测试代码,compile之后会生成

Maven学习第2期---Maven安装配置

一.Maven介绍 1.1 何为Maven Maven这个词可以翻译为"知识的积累",也可以翻译为"专家"或"内行".Maven是一个跨平台的项目管理工具,是Apache组织中的一个颇为成功的开源项目, Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理.无论是小型的开源类库项目,还是大型的企业级应用:无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手. 1.2 Maven用途 1.2.1 项目构建 在程序开发

Maven学习笔记

Maven学习笔记 Maven是项目管理工具 1. 安装Maven 在apache官网(http://maven.apache.org/download.cgi) 下载apache-maven-3.3.3-bin.zip和apache-maven-3.3.3-src.zip:解压,把bin的位置设在环境变量里, 新建环境变量名:MAVEN_HOME 值:C:\Users\pengtao.yue\apache-maven-3.3.3\bin 在path中加入:%MAVEN_HOME% 在DOS中输

Maven学习(五):maven的灵活构建

一.实现资源过滤 (一)maven-resources-plugin 插件 1.Maven 区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件.默认的主资源文件目录是 src/main/resources. 2.很多用户会需要添加额外的资源文件目录,这个时候就可以通过配置maven-resources-plugin来实现.实现资源的过滤只需要添加 <filtering>true<

maven学习3,如何创建一个web项目

Maven学习 (三) 使用m2eclipse创建web项目 1.首先确认你的eclipse已经安装好m2eclipse的环境,可以参照上两篇Maven学习内容 2.新建一个maven的项目 3.下一步默认配置,使用默认的工作空间,或者你可以自己选择其他的空间 4.一般我们都是web开发,所以选择maven-archetype-webapp 5. 填写好相应的groupId,artifactId,version等信息 Maven坐标:groupId:artifactId:packaging:ve

Maven学习记录

Maven学习记录文档 一.下载安装Maven说明: 1.Jdk环境准备 由于Maven依赖Java运行环境,因此使用Maven之前需要配置Java的运行环境.下载并安装JDK,配置JDK的环境变量JAVA_HOME,否则maven将无法使用 2.下载maven 首先下载maven的bin,在apache官方网站可以下载. http://maven.apache.org/download.cgi 3.设置maven环境变量 1)在PATH里加入maven的bin的路径 下载下来之后,解压,找个路

Maven学习(三)- 使用Maven构建Web项目

从网上查了一些资料,才算明白(也就是怎么操作吧),怎么使用Maven构建一个Web项目,找到一篇文档,主要都是从这里学到的: 下载地址:使用Eclipse构建Maven的Web项目.docx 现自己在重新操作一下:(使用的是Eclipse JavaEE版 ps:eclipse-jee-indigo-SR1-win32,已经安装好了m2eclipse插件) 1.新建Maven项目 1.1 File -> New -> Other 1.2 选择Maven Project ,单击Next 1.3 保

Maven学习笔记之——仓库(中)

Maven学习笔记之--仓库(中) 1.    远程仓库的配置 当出现默认的中央仓库无法满足我们的需求或者连接不上的时候.我们可以通过POM文件来指定远程仓库. <repositories> <repository> <id>jboss-maven2-release-repository</id> <name>JBoss Repository</name> <url>http://repository.jboss.org/

Maven学习总结

转载至:http://www.cnblogs.com/xdp-gacl/p/3498271.html 一 入门 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步骤,这六个步骤就是一个项目的完整构建过程. 理想的项目构建是高度自动化,跨平台