注意:m2e http://m2eclipse.sonatype.org/sites/m2e (已经不存在,
迁移到http://eclipse.org/m2e/download/,直接将install图标拖到运行中的eclipse即可
m2eclipse为Eclipse环境提供了全面丰富的Maven集成,主要功能如下:
创建和导入Maven项目
管理依赖并与Ecliplse的classpath集成
自动下载依赖
自动解析依赖的sources与javadoc包
使用Maven Archetype创建项目
浏览与搜索远程Maven仓库
从Maven POM具体化一个项目
从SCM仓库签出Maven项目
自动适配嵌套的多模块Maven项目至Eclipse
集成Web Tools Projects(WTP)
集成Subclipse
集成Mylyn
可视化POM编辑
图形化依赖分析
新建Maven项目
Create a simple project(skip archetype selection)
只包含最基本的Maven项目目录结构
Archetype Catalog有4个:
maven-archetype-plugin内置的Internal、本地仓库的default local、m2eclipse下载到仓库索引中包含的nexus indexer,
以及所有这3个合并得到的All Catalogs
一般来说,只需要选择Internal,然后再选择一个Archetype(如maven-archetype-quick-start)
导入Maven项目
导入本地项目
从SCM仓库导入项目(需要eclipse已经安装了SCM的eclipse插件,如subclipse,还需要m2eclipse的附属组件
Maven SCM Integration以及对应的SCM handler,如集成subclipse的Maven SCM handler for subclipse
Install or deploy an artifact to a Maven repository:能让用户将任意的文件安装到Maven的本地仓库。如果该文件没有对应的POM,则需要为其定义Maven坐标。
Materialize Maven Projects:让用户导入第三方的Maven项目,如junit
m2eclipse中的Maven项目的结构
src/main/java,src/main/resources,src/test/java,src/test/resources都被自动转换成了Eclipse中的源码文件夹(Source Folder)
Maven的依赖则通过Eclipse库(Libraries)的方式引入,所有Maven依赖都在一个名为Maven Dependencies的Eclipse库中。
需要注意的是:这些依赖文件并没有复制到Eclipse工作区,只是对Maven本地仓库的引用。
所有的源码文件夹和Maven依赖都在Eclipse项目的构建路径(Build Path)中
当然用户可以直接访问项目根目录下的pom.xml文件。此外,代码目录和资源目录之外的其他目录不会被转换成Eclipse的源码文件夹,
不会被加入到构建路径中,但用户还是可以在Eclipse中访问它们。
注意:如果用户更改了POM内容且导致项目结构发生变化,m2eclipse可能无法自动识别,需要手工进行Update Project Configuration
执行mvn命令
自定义mvn命令 Maven Build ...
访问Maven仓库
有了m2clipse,可以直接在Eclipse中浏览本地和远程的Maven仓库,并且能够基于这些仓库的索引进行构件索引和JAVA类搜索。
仓库视图中包含了3类Maven仓库,分别为本地仓库,全局仓库,以及项目仓库
全局仓库默认为中央仓库,但如果在settings.xml中设置了镜像,就会自动变更为镜像仓库
如果当前Maven项目的pom.xml中配置了其他仓库,就会被自动加入到项目仓库这一类中。
这些仓库的信息来源于用户的settings.xml和工作区的Maven项目的pom.xml文件
m2eclipse不会真正的去存储所有仓库的内容,那样需要消耗大量的磁盘及网络带宽。与nexus一样,使用nexus-indexer索引仓库内容的
信息,以全局仓库central为例,用户在首次使用m2eclipse的仓库浏览及搜索功能之前,需要构建该仓库的索引。
一般情况下,建立本地仓库的索引即可。
管理项目依赖
添加依赖
通过右键菜单选择Add Dependency
双击pom.xml打开POM编辑器,使用m2eclipse的POM编辑器
直接编辑pom.xml
分析依赖
Effective POM
任何一个项目的POM都至少继承自Maven内置的超级POM.
Effective POM表示一个合并整个继承结构所有信息的POM
Maven用户可以直接从命令行获得Effective POM
mvn help:effective-pom
下载依赖源码
m2eclipse能够自动下载并使用依赖的源码包,当你需要探究第三方开派依赖的细节,或者在调试应用程序的时候,这一特性非常有用。
但该功能的前提是依赖提交了相应的源码包至Maven仓库