1. MyEclipse中的Maven集成
本篇概述为您介绍一下Maven的基本概念,以及如何在MyEclipse(Maven4MyEclipse)中使用Maven来提高Maven UI的工作经验。Maven4MyEclipse无论是对于新手还是经验丰富的开发者都同样有用,因为它使最经常使用的Maven任务变得更容易。
Maven4MyEclipse是Maven和MyEclipse IDE之间进一步的整合。这种整合消除了一些Maven用户最常见的障碍,包括:
- 从MyEclipse类路径容器的后台安装Sun JARs到您的本地Maven仓库中
- 运行时的JDK简单配置和编译时的Maven
- 简单安装自己的JAR到Maven仓库中
通过消除这些进入门槛,您可以简单的在MyEclipse的项目中使用Maven了,没有额外的麻烦或设置来与之抗衡了。
2. 什么是Maven?
在最简单的意义上说,Maven是一个基于项目建设功能的核心声誉的项目管理工具。许多人认为Maven只是一个构建的工具,但其基于插件的性质(不同于Eclipse)允许它充当端对端的项目管理工具,提供一个几乎无限数组的功能。这些插件的可变性导致了一些围绕"什么是Maven?"的问题。
Maven的核心设计是建立在依赖管理和单一的JAR库基础之上的。您项目的需求连同其它其它构建需求一起被定义。Maven遵循严格的JAR标准版本;在Maven当中典型的myproject.jar约定不通过审核。它必须是myproject-1.3.7.jar,最坏也是myproject-SNAPSHOT.jar。Maven从(public or private)的仓库中更新这些库,每个被您拉入到本地Maven仓库的都会被作为构建被执行。JARs被更新时严格遵循规则,管理可以声明这些规则可作为该项目元数据(pom.xml)的一部分。
Maven项目被定义为约定优先于配置。换句话说,您除了不同之外不用定义一个Maven的pom.xml(项目定义文件)中的任何东西,或者直接附加到一个标准的Maven项目上。因此,每个项目运行的核心阶段是相同的,其中包括很多目标。甚至当一个Maven目标运行时额外自定义的插件通常被放置在这些相同的阶段当中。
注意:您可以从maven.apache.org中了解有关于Maven Lifecycle的更多信息。
如果您是一个Ant用户,写核心构建脚本对于您来说可能是Maven最难的部分。对于那些已经做了五年的企业开发人员来说这可能是非常令人费解的,特别是像Ant,您仍然可以根据自身的需求来自定义Maven。您甚至可以轻松地定制它,用电话直接进入Ant。
3. 在MyEclipse项目中使用Maven
Maven4MyEclipse的前提是,首先最重要的是,这是一个MyEclipse项目。这就意味着,它应该像前面其他任何MyEclipse项目一样,有或者没有Maven。所有的设置窗口、工具和一般可操作的项目应该是和其他一样的。因此,如果您从来没有遇到过一个单一的Maven目标,您的项目仍然以同样的方式工作。同样的,您的MyEclipse工具不会受Maven或它目标运行的任何影响。
Maven4MyEclipse使用两种主要的方法来使普通的Maven任务变得更加容易。
- 在pom.xml中使用向导更轻松地定义数据,或Maven项目的元数据。
- 提供了标准和易于定制的菜单来启动您每天使用的Maven目标。
Maven4MyEclipse在源代码方面创建符合传统的MyEclipse项目结构。这使得您可以以同样的方式来编写您项目的代码,直到MyEclipse项目完成。类路径容器和编译的二进制文件都被构造为Maven约定,因此MyEclipse用户首次迁移到Maven能两全其美。
3.1 支持Maven的项目
Maven4MyEclipse使Maven支持MyEclipse Web项目、MyEclipse EJB项目、MyEclipse EAR项目和常规的Java项目。
Maven4MyEclipse创建Maven-enabled MyEclipse项目来同Maven和MyEclipse的工具同时进行工作。Maven-enabled MyEclipse项目同MyEclipse项目一样能正常运行,同时提供任何典型MyEclipse项目所提供的所有相同的工具:视图、编辑器、部署和调试。你所需要的工具都没有改变,所不同的是给您提供了不同的附加工具。
Maven-enabled MyEclipse项目的功能就像MyEclipse项目和Maven项目一样;允许您使用MyEclipse IDE运行针对于他们的任何Maven目标、管理依赖关系等等。
导入Maven项目同时与基于包含在pom.xml文件中的信息的相应元数据进行自动配置,使它们能立即部署和使用而无需额外配置。
3.2 Java EE配置器
MyEclipse自动检测基于pom.xml或特定文件的Maven项目,这使得导入的Maven项目能立即使用。如果您修改pom.xml或添加新的配置文件,它还会在稍后一段时间自动检测。但您要停用特定的方面配置程序来避免不必要的安装。
在全球范围内的每个工作区,配置器可以通过选择Window>Preferences,展开MyEclipse>Maven4MyEclipse>JavaEE Integration来被禁用。选择您想要被激活的Java EE配置器,默认情况下所有的配置器会被激活。
要关闭一个项目的Maven facet配置器,必须在pom.xml中包含相应的属性。例如,您不希望有自动安装的JSF facet,打开pom.xml,然后创建属性,如下图所示:
用于支持facets的属性名称是:
- JSF – m2e.jsf.activation
- JAX-RS – m2e.jaxrs.activation
- JPA – m2e.jpa.activation
- Struts 1 & 2 – m2e.struts.activation
- Spring – m2e.spring.activation
- Hibernate – m2e.hibernate.activation
4. Maven4MyEclipse的兼容性与命令行的Maven
Maven4MyEclipse和Maven-enabled MyEclipse项目与命令行Maven完美共存。
注意:如与任何外部产生假象,建议您在运行类似于Maven或Ant的进程后刷新您的项目。
Maven4MyEclipse设计使命令行的Maven在大多数情况下是不必要,同时允许您停留在IDE中并可以从UI中执行所有的Maven任务。
5. Maven警示提醒
MyEclipse团队将加入Maven工具设置来使开发人员能够更轻松和有效的生成一个重要的步骤。这似乎非常奇怪,因为Maven阻扰用户也是久负盛名的。我们已经移除了通常在最初几个小时困扰Maven用户的障碍。
- 轻松地安装第一个Maven JAR
- 确保您的项目与没有调用单个Maven目标的MyEclipse工具一起完美地工作
- 为大多数知名的Maven难题初始提供了参考和提示
作为一名开发者,强烈建议您处理Maven时就像处理任何新的和复杂的技术一样。更具体地说,Maven有时可能会有一些粗糙的边缘,所以如果您打算推出Maven超出工作空间到企业层面,那么应该预算一些时间来处理这些问题。
Maven粗糙边缘不无根据,这是一个更加强大的工具集。有些可以通过在服务器级添加几个存储工具来处理。许多插件也可用于成熟期的不同阶段,任何一个插件都可以消极地影响整个生命周期的构建,例如当一个插件从公共库中丢失时。
6. FAQ
我使用Maven4MyEclipse一定要熟悉Maven吗?
不是,但我们建议您阅读第二小节,熟悉什么是Maven可以使您明白Maven4MyEclipse中Maven功能的意义。