Recent Maven Blogs

Searching with the Nexus REST API: Ruby

11/19/08 -

When you search for artifacts using http://repository.sonatype.org, the browser is querying the Nexus repository using a REST API. In this post, I’m going to show you some simple Ruby scripts which you can use to search the Maven repository ...

Use repository.sonatype.org to Search Central Maven Repository

11/19/08 -

If you are looking for the easiest way to search for artifacts in the Central Maven Repository, go to http://repository.sonatype.org. Sonatype maintains a publi instance of Nexus that can be used to search for artifacts by GAV (groupId, artifactId...

Searching the Maven Repository

11/11/08 -

A common question from Apache Maven users is “How do I search the central repository?” or “How do I find out what groupId or artifactId I should use for a specific dependency?” Use Sonatype’s Nexus installation at htt...

m2eclipse turns heads at the Stockholm JUG!

11/11/08 -

One of the users on the m2eclipse user list has some great feedback about a presentation he did at the Stockholm JUG on the best of breed Maven tooling which includes Nexus and m2eclipse. Apparently people are impressed with the Maven support insi...

General Framework For Model Inheritance

11/10/08 -

Maven 3.0 uses a new standalone component that handles inheritance and interpolation of a model in any format. The model needn’t even be XML based. If you can translate your model into a list of property-value pairs, you can use this framewo...

MySQL?s Zack Urlocker writes about Sonatype?s new CEO in InfoWorld

11/10/08 -

There’s are lots of people who already know that Mark de Visser is the new CEO of Sonatype, but Zack wrote a nice bit about it today in his InfoWorld blog: http://weblog.infoworld.com/openresource/archives/2008/11/marketing_maven.html I am r...

Chapter 14. Maven和Eclipse: m2eclipse

14.1. 简介

Favicon

Eclipse IDE是目前Java开发人群中使用得最广泛的IDE。Eclipse有一大堆的插件(请看http://www.eclipseplugincentral.com/),无数的组织在它之上开发他们自己的软件。显然,Eclipse无处不在。m2Eclipse项目在Eclipse IDE中提供了对Maven的支持,本章,我们将会研究它提供的特性,以帮助你在Eclipse IDE中使用Maven。

14.2. m2eclipse

Favicon

m2eclipse插件(http://m2eclipse.codehaus.org/)为Eclipse提供了Maven的集成。m2Eclipse同时也以挂钩的方式连接了Subclipse插件(http://subclipse.tigris.org/)和Mylyn插件(http://www.eclipse.org/mylyn/)的特性。Subclipse插件为m2eclipse提供了与Subversion仓库交互的能力,Mylyn插件为m2eclipse提供了与任务集中接口交互的能力,该接口能跟踪开发过程的上下文。m2clipse提供的一些特性包括:

  • 创建和引入Maven项目

  • 依赖管理和与Eclipse classpath的集成

  • 自动下载和更新依赖

  • 构件的Javadoc及源码解析

  • 使用Maven Archetypes创建项目

  • 浏览,搜索远程Maven仓库

  • 通过自动更新依赖列表管理POM

  • 从Maven POM具体化一个项目

  • 从多个SCM仓库签出一个Maven项目

  • 适配嵌套的多模块Maven项目至Eclipse IDE

  • 与 Web Tools Project (WTP)集成

  • 与 AspectJ Development Tools(AJDT) 集成

  • 与 Subclipse 集成

  • 与 Mylyn 集成

  • 基于表单的 POM 编辑器

  • 依赖图的图形化显示

  • 依赖树和已解析依赖的 GUI 展现

在上述列表以外m2eclipse还有很多其它的特性,本章介绍一些更令人印象深刻的特性。让我们从安装e2eclipse插件开始。

14.3. 安装 m2eclipse 插件

Favicon

要安装m2Eclipse插件,你需要符合一些先决条件。你需要运行Eclipse 3.2或更高版本,JDK 1.4或更高版本,你需要确认Eclipse是在JDK上运行而不是JRE。在你有了Eclipse和兼容的JDK之后,你需要安装两个Eclipse插件:Subclipse和Mylyn。

14.3.1. 安装前提条件

Favicon

你可以在安装m2eclipse的时候安装这些前提条件的软件,只要为每个前提条件软件添加一个远程更新站点至Eclipse。要安装这些先决条件软件,找到HelpSoftware UpdatesFind and Install...。选择这个菜单项会载入Install/Update对话框。选择“Search for new features to install”选项然后点击Next。你将会看到一个“Update sites to visit”的列表。点击New Remote Site...,然后为每一个新的前提条件添加一个新的更新站点。为每个插件添加新的更新站点然后确认新站点被选择了。在你点击Finish之后,Eclipse会让你选择插件组件以安装。选择你想要安装的组件,Eclipse会下载,安装及配置你的插件。

需要注意的是如果你正在使用Eclipse最新的版本Eclipse 3.4(Ganymede),安装插件的过程可能会有点不一样。在Ganymede中,你需要选择HelpSoftware Updates...,它会载入"Software Updates and Add-ons"对话框。在这个对话框中,选择“Available Software”面板然后点击Add Site...,它会载入"Add Site" 对话框。输入更新站点的URL然后点击OK。在"Software Updates and Add-ons"对话框中会出现更新站点上可用的插件。你可以选择你想要安装的模块然后点击Install...按钮。Eclilpse会解析所选插件的所有依赖,然后要求你同意插件的许可证。在Eclipse安装了新的插件之后,它会征求你的允许以重启。

14.3.1.1. 安装 Subclipse

Favicon

要安装Subclipse,使用下面的Eclipse插件更新站点。

想要了解其它版本的Subclipse,以及关于Subclipse插件更多的信息,请访问Subclipse项目的web站点:http://subclipse.tigris.org/

14.3.1.2. 安装 Mylyn

Favicon

要安装集成了JIRA支持的Mylyn,添加Mylyn Extras的Eclipse更新URL,如果你的组织使用Atlassian's JIRA来跟踪问题,你会需要这么做。使用下面的更新站点来安装Mylyn:

想了解关于Mylyn项目的更多信息,访问Mylyn项目的web站点:http://www.eclipse.org/mylyn/

14.3.1.3. 安装 AspectJ Tools Platform (AJDT)

Favicon

如果你正在安装m2eclipse的0.9.4版本,你可能同时也想要安装Web Tools Platform (WTP) 和 AspectJ Development Tools (AJDT)。使用如下的eclipse更新URL以安装AJDT

想要了解更多的关于AJDT项目的信息,请访问AJDT项目的web站点http://www.eclipse.org/ajdt/

14.3.1.4. 安装 Web Tools Platform (WTP)

Favicon

要安装Web Tools Platform (WTP)。使用如下的eclipse更新URL,或者直接在Discovery站点中寻找Web Tool Project,该站点应该已经在你的Eclipse远程更新站点列表中了。

关于更多的Web Tools Platform的信息,请访问Web Tools Platform项目的web站点http://www.eclipse.org/webtools/

14.3.2. 安装 m2eclipse

Favicon

一旦你已经安装好这些先决条件,你从如下的Eclipse更新URL安装m2eclipse插件:

如果你想要安装最新的该插件的快照开发版本,你应该使用如下的开发更新URL而非之前的URL。

要安装m2eclipse,只需要添加一个正确的更新站点。至HelpSoftware UpdatesFind and Install...,选择这个菜单项后会载入Install/Update对话框。选择"Search for new features to install"选项然后点击Next。你将会看到一个"Update sites to visit"列表。点击New Remote Site...,然后添加m2eclipse的更新站点。确认这个新添加的站点被选中了。在你点击Finish之后,Eclipse会要求你选择要安装的组件。你选好之后Eclipse会自动下载,安装,和配置m2eclipse。

如果你已经成功安装了这个插件,当你打开WindowPreferences...的时候,你应该能够在一个选项列表中看到一个Maven选项。

14.4. 开启 Maven 控制台

Favicon

在我们开始查看m2eclipse的特征之前,首先让我们开启Maven的控制台。通过访问WindowShow ViewConsole来打开控制台视图。然后点击控制台视图右手边的一个小箭头,然后选择Maven控制台,如下显示:

在Eclipse中开启Maven控制台

Figure 14.1. 在Eclipse中开启Maven控制台


Maven控制台显示那些当在命令行运行Maven时出现在控制台的Maven输出。能看到Maven正在干什么,以及根据调试输出来诊断问题,都是很实用的。

14.5. 创建一个 Maven 项目

Favicon

在Maven中,我们使用archetype来创建项目。在Eclipse中,我们通过新建项目向导来创建项目。Eclipse中的新建项目向导为创建新项目提供了大量的模板。m2eclipse插件为这个向导增加如下的功能:

  • 从SCM仓库签出一个Maven项目

  • 使用Maven archetype创建一个Maven项目

  • 创建一个Maven POM 文件

Figure 14.2, “使用m2eclipse向导来创建一个新项目” 所示,这三个选项对使用Maven的开发人员来说都很重要。让我们逐个看一下。

使用m2eclipse向导来创建一个新项目

Figure 14.2. 使用m2eclipse向导来创建一个新项目


14.5.1. 从 SCM 签出一个 Maven 项目

Favicon

m2eclipse提供了直接从SCM仓库签出项目的能力。简单的输入项目的SCM信息,它就会为你签出项目至你所选择的位置,如Figure 14.3, “从Subversion签出一个新的项目”

从Subversion签出一个新的项目

Figure 14.3. 从Subversion签出一个新的项目


该对话框中还有其它的选项用来浏览Subversion仓库的修订版以指定某个特定的修订版,或者直接手工输入修订版本号。这些特性重用了Subclipse插件的一些特性以和Subversion仓库相互。除了Subversion,m2eclipse插件也支持下面的SCM提供者:

  • Bazaar

  • Clearcase

  • CVS

  • git

  • hg

  • Perforce

  • Starteam

  • Subversion

  • Synergy

  • Visual SourceSafe

14.5.2. 用Maven Archetype创建一个Maven项目

Favicon

m2eclipse提供了使用Maven Archetype创建一个Maven项目的能力。伴随着m2eclipse有许多可用的Maven Archetype,如Figure 14.4, “使用Maven Archetype创建一个Maven项目”

使用Maven Archetype创建一个Maven项目

Figure 14.4. 使用Maven Archetype创建一个Maven项目


Figure 14.4, “使用Maven Archetype创建一个Maven项目”中的archetype列表是由一个叫Nexus索引器生成的。Nexus是一个仓库管理器,将会在Chapter 16, 仓库管理器介绍。Nexus索引器是一个包含了整个Maven仓库索引的文件,m2eclipse使用它来罗列出所有Maven仓库中可用的archetype。到本章更新为止,m2eclipse大概在这个对话框中有90个archetype。其中比较突出的有:

[3]这些只是由Nexus索引器目录罗列的archetype,如果你切换目录你会看到其它的archetype。虽然你看到的结果会有变化,但是以下额外的archetype能在Internal目录中得到:

  • Atlassian Confluence 插件 Archetype 位于 com.atlassian.maven.archetypes

  • Apache Struts Archetype 位于 org.apache.struts

  • Apache Shale Archetype 位于 org.apache.shale

一个目录是对于仓库索引的简单引用。你看以通过点击在catalog下拉菜单旁边的Configure...按钮来管理一组m2eclipse已经了解的目录。如果你有你自己的archetype需要加入到这个列表中,可以点击Add Archetype...

一旦你选择了一个archetype,Maven会从Maven仓库取得相应的artifact然后使用这个archetype创建一个新的Eclipse项目。

14.5.3. 创建一个 Maven 模块

Favicon

m2eclipse提供了创建一个Maven模块的能力。创建一个Maven模块和创建一个Maven项目几乎一样,它也会用Maven archetype创建一个新的Maven项目。然而,一个Maven模块是另一个Maven项目的子项目,后者通常被认为是父项目。

创建一个Maven模块

Figure 14.5. 创建一个Maven模块


当创建一个新的Maven模块的时候你必须选择一个在Eclipse中存在的父项目。点击浏览按钮,会看到一个已存在的项目的列表,如Figure 14.6, “为一个新的Maven模块选择一个父项目”

为一个新的Maven模块选择一个父项目

Figure 14.6. 为一个新的Maven模块选择一个父项目


在该列表中选择了一个父项目之后,你回到了创建新Maven模块的窗口,父项目字段已被填充,如Figure 14.5, “创建一个Maven模块”所示。点击Next你将会看到来自Section 14.5.2, “用Maven Archetype创建一个Maven项目”的标准archetype列表,然后你可以选择用哪个archetype来创建Maven模块。

14.6. 创建一个Maven POM文件

Favicon

另外一个m2eclipse提供的重要特性是它能创建一个新的Maven POM文件。m2eclipse提供了一个向导,可以用来很轻松的为一个已经在Eclipse中的项目创建一个新的POM文件。这个POM创建向导如Figure 14.7, “创建一个新的POM”所示:

创建一个新的POM

Figure 14.7. 创建一个新的POM


创建一个新的Maven POM大致就是选择一个项目,在m2eclipse提供的字段中输入Group Id,,Artifact Id,,Version,选择打包类型,以及提供一个名称。点击Next按钮开始添加依赖。

为新的POM添加依赖

Figure 14.8. 为新的POM添加依赖


正如你能在Figure 14.8, “为新的POM添加依赖”看到的,POM中现在还没有依赖。点击Add按钮以向中央Maven仓库查询依赖,如Figure 14.9, “向中央仓库查询依赖”所示:

向中央仓库查询依赖

Figure 14.9. 向中央仓库查询依赖


查询依赖只是简单的输入你需要的构件的groupIdFigure 14.9, “向中央仓库查询依赖”展示了对org.apache.commons的一个查询,其中commons-vfs已被展开以查看可用的版本。选中commons-vfs1.1-SNAPSHOT版本然后点击OK,你会回到依赖选择界面,你可以查询更多的构件或者直接点击finish按钮以创建POM。当你搜索依赖的时候,m2eclipse正使用在Nexus仓库管理器中使用的同样的Nexus仓库索引。

现在你已经看到了m2eclipse创建新项目的特性,让我们看一下一组类似的将项目引入Eclipse的特性。

14.7. 导入Maven项目

Favicon

m2eclipse为导入Maven项目至Eclipse提供了三种选择,分别是:

  • 导入一个已存在的Maven项目

  • 从SCM签出一个Maven项目

  • 具体化一个Maven项目

Figure 14.10, “导入一个Maven项目” 展示了m2eclipse提供的带有Maven选项的项目导入向导:

导入一个Maven项目

Figure 14.10. 导入一个Maven项目


使用Eclipse中的命令FileImport,然后在过滤字段中输入单词maven,就可以看到Figure 14.10, “导入一个Maven项目”的对话框。正如前面提到的,导入一个Maven项目至Eclipse有三种可用的方法:现存的Maven项目,从SCM签出一个项目,以及具体化Maven项目。

从Subversion导入一个Maven项目和前一节讨论的从Subversion创建一个Maven项目是等同的,因此再次讨论就显得冗余了。让我们往前走,看一下导入Maven项目至Eclipse的另外两个选项。

14.7.1. 导入一个Maven项目

Favicon

m2eclipse可以通过一个已存在的pom.xml导入一个Maven项目。通过指向Maven项目所在的目录,m2eclipse能探测到该项目中的所有POM,然后提供一个这些POM的层次列表,如Figure 14.11, “导入一个多模块的Maven项目”

导入一个多模块的Maven项目

Figure 14.11. 导入一个多模块的Maven项目


Figure 14.11, “导入一个多模块的Maven项目” 显示了被导入的项目的视图。注意该项目中所有的POM是分层的。这让你能够很简单的选择到你想要导入至Eclipse的POM(也就是你想要导入的项目)。当你选择了你想要导入的项目之后,m2eclipse会使用Maven导入并构建这个项目。

14.7.2. 具体化一个Maven项目

Favicon

Maven还提供了“具体化”一个Maven项目的能力。具体化类似于从Subversion签出一个Maven项目的过程,但此时Subversion URL是从项目的根POM文件找到的,而不是手工的输入。如果一个POM文件有正确的元素来指定源代码仓库的位置,你就能仅仅通过这个POM文件来“具体化”Maven项目。使用这个特性,你可以浏览中央Maven仓库中的项目,然后将其具体化成Eclipse项目。如果你的项目依赖于一个第三方的开源库,而且你需要查看这个库的源码,具体化的特性就变得十分方便和实用。现在只需要实用m2eclipse魔术般的“具体化”特性将项目导入到Eclipse中,而不是去追查项目的web站点然后寻找如何将其从Subversion签出。

Figure 14.12, “Materializing a Maven Project” 展示了选择具体化Maven项目后的向导:

Materializing a Maven Project

Figure 14.12. Materializing a Maven Project


注意在这个对话框中Maven artifacts是空的。这是因为还没有添加项目。为了添加一个项目,你需要点击右边的Add按钮然后选择一个来自中央Maven仓库的依赖以添加。Figure 14.13, “选择一个构件以具体化”展示了如何添加一个项目:

选择一个构件以具体化

Figure 14.13. 选择一个构件以具体化


当输入查询的时候,候选的依赖将会被在本地Maven仓库找到。花几秒钟对本地Maven仓库索引之后,候选依赖列表就会显示。选择一个要添加的依赖然后点击OK,这样它们就会被添加到列表中如Figure 14.14, “具体化Apache Camel”

具体化Apache Camel

Figure 14.14. 具体化Apache Camel


在添加一个依赖的时候,你有一个选项,让m2eclipse签出这个构件的所有项目。

14.8. 运行Maven构建

Favicon

m2eclipse修改了Run As...Debug As...菜单,以让你能够在Eclipse中运行Maven。Figure 14.15, “通过Run As..运行一个Eclipse构建”展示了一个m2eclipse项目的Run As...菜单。从这个菜单你可以运行一些常用的生命周期过程如clean,install,或者package。你也可以载入运行配置对话框窗口,然后使用参数及更多的选项来配置一个Maven构建。

通过Run As..运行一个Eclipse构建

Figure 14.15. 通过Run As..运行一个Eclipse构建


如果你需要用更多的选项来配置一个Maven构建,你可以选择Run Configurations...然后创建一个Maven构建。Figure 14.16, “配置一个Maven构建作为一个运行配置”展示了配置一个Maven构建的运行配置对话框。

配置一个Maven构建作为一个运行配置

Figure 14.16. 配置一个Maven构建作为一个运行配置


运行配置对话框允许你指定多个目标和profile,它暴露了类似于“skip tests”和“update snapshots”的选项,并且允许你自定义从项目到JRE到环境变量的一切。你可以使用这个对话框来支持任何你希望在m2eclipse中启动的自定义Maven构建。

14.9. 使用Maven进行工作

Favicon

当项目在Eclipse中的时候,m2eclipse插件为使用Maven提供了一组特性。有很多特性使得在Eclipse中使用Maven变得十分容易,让我们仔细看一下。在前一节,我们具体了一个Maven项目并且选择了一个来自于Apache Camel的名为camel-core的子项目。我们将使用这个项目来演示这些特性。

通过在camel-core项目上右击,然后选择Maven菜单项,你能看到可用的Maven特性。Figure 14.17, “可用的Maven特性”展示了这些特性的一个快照。

可用的Maven特性

Figure 14.17. 可用的Maven特性


注意在Figure 14.17, “可用的Maven特性”中camel-core项目可用的特性包括:

  • 添加依赖和插件

  • 更新依赖,快照和源代码文件夹

  • 创建一个Maven模块

  • 下载源代码

  • 打开项目的URL如项目Web页面,问题追踪系统,源码控制,和持续集成工具

  • 开启/关闭工作台解析器,嵌套Maven模块和依赖管理

这些特性都能帮你节省很多时间,让我们先简单的看一下。

14.9.1. 添加及更新依赖或插件

Favicon

让我们假设我们想要给camel-core POM添加一个依赖或者一个插件。为了示范,我们会添加commons-lang作为一个依赖。(请注意添加依赖或者插件的功能完全一样,因此我们就用添加一个依赖作为示范。)

m2eclipse为给一个项目添加依赖提供了两种选项。第一种选项是通过手动的编辑POM文件的XML内容来添加一个依赖。这种手动编辑POM文件方式的缺点是你必须知道构件的信息,或者,你可以使用下一节讨论的特性来手工的定位仓库索引中的构件信息。好处是在你手工添加依赖并保存POM文件之后,项目的Maven依赖容器会自动更新以包含这个新的依赖。Figure 14.18, “手动给项目的POM添加一个依赖”展示了如何给camel-console POM 添加对commons-lang的依赖,然后Maven依赖容器自动更新并包含了这个依赖。

手动给项目的POM添加一个依赖

Figure 14.18. 手动给项目的POM添加一个依赖


手动添加依赖效果不错但是它比第二种方式需要更多的工作。在手动给POM添加依赖元素的时候,Eclipse工作台右下角的进程反映了这一动作,如Figure 14.19, “更新Maven依赖”

更新Maven依赖

Figure 14.19. 更新Maven依赖


第二种添加依赖的方式容易得多,因为你不需要知道构件的除groupId以外的信息。Figure 14.20, “搜索依赖”展示了这种功能:

搜索依赖

Figure 14.20. 搜索依赖


通过简单的在搜索框中输入信息,m2eclipse会查询仓库索引,显式在本地Maven仓库中构件的版本。这种方式更好因为它能节省大量的时间。有了m2eclipse,你不再需要中央Maven仓库中搜寻一个构件版本。

14.9.2. 创建一个Maven模块

Favicon

m2eclipse使得在一个多模块的Maven项目中创建一系列的嵌套项目变得十分容易。如果你有一个父项目,而且你想给这个项目添加一个模块,只需要在项目上右击,打开Maven菜单,选择“New Maven Module Project”。m2eclipse会带你创建一个新项目,之后他会更新父项目的POM以包含子模块的引用。在m2eclipse出现之前,很难在Eclipse中使用Maven项目的层次特性。有了m2eclipse,父子项目关系的底层细节被集成到了开发环境中。

14.9.3. 下载源码

Favicon

如果中央Maven仓库包含了某个特定项目的源码构件,你可以从仓库下载这份源码然后在Eclipse环境中使用它。当你正在Eclipse中调试一个复杂的问题的时候,没有什么能比在Eclipse调试器中的第三方依赖上右击然后研究源码来的更方便的了。选择该选项之后,m2eclipse会尝试着从Maven仓库下载源码构件。如果不能取得源码构件,你应该去问项目的维护者,让他上传适当的Maven源码至中央Maven仓库。

14.9.4. 打开项目页面

Favicon

一个Maven POM包含一些开发者可能需要查阅的有很有价值的URL。它们包括项目的web页面,源代码仓库的URL,如Hudson之类的持续集成系统的URL,问题追踪系统的URL。如果这些URL在项目的POM中存在,m2eclipse就能在浏览器中打开这些项目页面。

14.9.5. 解析依赖

Favicon

你可以配置项目让它从workspace中解析依赖。这种配置改变了Maven定位依赖构件的方式。如果项目被配置成从workspace解析依赖构件,这些构件就不需要存在于你的本地仓库。假设项目a和项目b都在同一个Eclipse workspace中,项目a依赖于项目b。如果workspace依赖解析被关闭了,项目a的Maven构建只有在项目b的构件存在于本地仓库时才会成功。如果workspace依赖解析开启了,m2eclipse就通过eclipse workspace解析这个依赖。换句话说,当workspace依赖解析开启的时候,项目之间的相互关联不需要通过本地仓库安装。

你也可以关闭依赖管理。这种配置的效果是告诉m2eclipse停止管理你项目的classpath,也会从你项目中移除Maven依赖classpath容器。如果你这么做了,管理你项目的classpath就全靠你自己了。

14.10. 使用Maven仓库进行工作

Favicon

m2eclipse也提供了一些工具使得使用Maven仓库变得容易一些。这些工具提供的功能包括:

  • 搜索构件

  • 搜索Java类

  • 为Maven仓库编制索引

14.10.1. 搜索 Maven 构件和 Java 类

Favicon

m2eclipse为Eclipse Navigation菜单添加几个项目,使搜索Maven构件和Java类变得容易。点击Navigate菜单就能使用这些选项,如Figure 14.21, “搜索构件和类”

搜索构件和类

Figure 14.21. 搜索构件和类


注意在Figure 14.21, “搜索构件和类”中在Eclipse Navigate菜单下面可用的选项名为Open Maven POMOpen Type from MavenOpen Maven POM选项允许你在Maven仓库中搜索POM,如Figure 14.22, “搜索一个POM”

搜索一个POM

Figure 14.22. 搜索一个POM


选择一个构件然后点击OK,这个构件的POM在Eclipse被打开以备浏览或者编辑。当你需要快速看一下某个构件的POM的时候,该功能十分方便。

Navigate菜单中第二个m2eclipse选项名为Open Type from Maven。该特性允许你通过名称在远程仓库中搜索一个Java类。打开这个对话框,键入‘factorybean’你就能看到名字带有FactoryBean的很多类,如Figure 14.23, “在仓库中搜索类”

在仓库中搜索类

Figure 14.23. 在仓库中搜索类


这是一个很能节省时间的特性,有了它,手工在Maven仓库中搜索构件中的类成为了过去。如果你需要使用一个特定的类,就打开Eclipse,至菜单Navigate然后搜索类。m2eclipse会显示一个搜索结果构件的列表。

14.10.2. 为Maven仓库编制索引

Favicon

Maven索引视图允许你手动的浏览远程仓库的POM并在Eclipse中打开它们。要查看这个视图,打开ViewShow ViewOther,在搜索框中键入单词“maven”,你应该能看到一个名为Maven索引的视图,如Figure 14.24, “打开Maven索引视图”

打开Maven索引视图

Figure 14.24. 打开Maven索引视图


选择这个视图然后点击OK。你将会看到如Figure 14.25, “Maven索引视图”的Maven索引视图。

Maven索引视图

Figure 14.25. Maven索引视图


此外,Figure 14.26, “从索引视图定位一个POM”展示手动导航至Maven索引视图之后,定位一个 POM

从索引视图定位一个POM

Figure 14.26. 从索引视图定位一个POM


在找到apache-camel构件之后,双击它会将在Eclipse中打开,以浏览或编辑。

这些特性使得在Eclipse中操作远程仓库变得更快更方便。过去一些年你可能已经花了很多时间来手工的进行这些操作——通过浏览器访问仓库,下载构件然后使用grep程序查找类和POM——你会发现m2eclipse是一种受欢迎的更好的变化。

14.11. 使用基于表单的POM编辑器

Favicon

m2eclipse的最新版本有个基于表单的POM编辑器,能让你通过一个易用的GUI接口来编辑项目pom.xml的每一个部分。要打开POM编辑器,点击项目的pom.xml文件。如果你为pom.xml文件定制了编辑器,POM编辑器不是默认的编辑器,你可以在这个文件上右击然后选择“Open With... / Maven POM Editor”。POM编辑器会显示Overview标签页如Figure 14.27, “idiom-core的POM编辑器的Overview标签页”

一个针对Maven的常见的抱怨是,在十分复杂的多模块项目构件中,它让开发人员面对十分巨大的XML文档。虽然本书的作者相信这只是为类似Maven的工具有带来的弹性所付出的小小的代价,但图形化的POM编辑器这样的工具能让用户在不知道Maven POM背后的XML结构的情况下就能使用Maven。