MyEclipse中的Maven依赖关系管理

1. Maven支持唯一依赖关系

Apache Maven是一个软件项目管理的综合工具。根据项目对象模型(POM)的概念,Maven可以管理一个项目的依赖关系、构建、报表以及信息中心的部分文档。

依赖关系管理是Maven最知名的功能之一,也是Maven最擅长的领域之一,但是通常只利用这个功能是不可能的。几乎所有的方式都需要您去配置一个基于Maven的项目、添加和配置Maven插件、处理文件和goals。同时MyEclipse完全支持最先进的Maven功能,如果您只想对依赖关系进行管理,那么创建一个完整的Maven项目会产生不必要的项目复杂性,这就是唯一依赖关系模式产生的原因。

2015 CI 7版本开始,MyEclipse支持使用Maven依赖关系解析,而不需要使用完整的Maven构建管理。

2. Maven支持——Dependencies Only Facet

在MyEclipse 2015 CI 7以及更高的版本中,您可以找到两个Maven-related project facets。Maven支持Java EE Projects facet并为您的项目提供完整的Maven功能。Maven支持——Dependencies Only facet为您的项目提供了唯一依赖关系管理的功能。

技术分享
Maven Support – Dependencies Only facet

在安装Dependencies Only facet时,将在pom.xml中指定所有Maven依赖关系的一个Maven依赖关系类路径容器添加到您的项目中。当您部署这个项目时此容器也会被部署,如果pom.xml文件不存在则会生成一个。

您可以对pom.xml做任何更改,然而依赖关系信息是不能更改的,Maven依赖关系容器会对其进行相应的更新。所有其他的项目配置元数据会被忽略,没必要费心思在附件的Maven设置上。

注意: Maven支持Java EE Projects facet和Maven支持——Dependencies Only facet是相互排斥的。对于全面的Maven支持,您必须使用前者。

3. 使用案例

下面的部分提供了在几种情况下使用Maven Dependencies Only facet的步骤。

3.1 为一个新项目添加唯一依赖关系模式
  1. 创建一个新的Web/ EJB项目;不要选择Add maven support复选框。
  2. 右键单击该项目,并选择属性。
  3. 展开MyEclipse,然后选择Project Facets。
  4. 选择Maven Support – Dependencies Only facet
  5. 单击确定或应用。
3.2 在现有的Maven项目中使用依赖关系唯一模式
  1. 右键单击该项目,并选择属性。
  2. 展开MyEclipse,然后选择Project Facets。
  3. 取消Maven Support for Java EE Projects来卸载full Maven support facet。
  4. 选择Maven Support – Dependencies Only facet
  5. 单击确定或应用。
3.3 从MyEclipse 10.x或更低版本中迁移Maven项目

MyEclipse 10.x或更低版本中主要处理Maven支持唯一依赖关系不够完善,如果您的项目中没有一个正确配置的pom.xml文件,当项目迁移到MyEclipse 2013或更高版本时,可能会在部署过程中出现问题。请重置您的项目状态并迁移到MyEclipse 2015中,然后在迁移之前执行以下步骤。

  1. 在主菜单栏上打开项目,并禁用自动构建(确保不被选中)。
  2. 导入/检出您的项目运行到MyEclipse 2015工作区间中。
  3. 当提示迁移的项目时,取消该进程或取消受影响的项目。
  4. 如上所述,为您的项目添加Maven Support – Dependencies Only facet。
  5. 启用自动构建
  6. 选择MyEclipse>Migrate Workspace来完整这些Maven项目的迁移。

部署现在应该类似于在MyEclipse 10.x中的部署。

注意:此进程将会继续在未来的MyEclipse版本中被精简。

当您准备好切换到完整的基于Maven配置,只需卸载此facet然后安装Maven Support for Java EE Projectsfacet。

MyEclipse官方中文网上线,欢迎下载交流!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。