Eclipse Maven插件(m2e)库索引跨workspace共享的实现

Eclipse m2e插件的Maven库索引的作用


利用m2e插件的索引,可以方便的检索maven库的可用项目,不用每次去中心库或者项目官网找,尤其一些项目官网在墙外,查起来比较困难。

Eclipse Maven插件(m2e)库索引跨workspace共享的实现_第1张图片
插件索引查找

上图中,灰色的表示jar文件在本地库,黑色的表示在远程库(maven中心仓库,或者配置的其它镜像库)。

位置:m2e将索引存储到了workspace


存储在workspace中,优点是可以比较好的隔离不同项目集,修改一个不会影响其它。同时也带来一些问题:

  1. 每次更换workspace就需要重新建立索引
  2. 一个workspace的索引更新后,其它索引不能同时更新,需要在使用时重新更新
  3. 最关键的,在天朝,这速度是龟速的,动辄是以小时为单位进行的,新建一次workspace重建索引的时间简直无法忍受,更别说不是每次build都能成功,完成一次建立好几天一点儿也不奇怪。
所以我决定,把索引拿出来,每个工作空间都共享,只要一个建立和更新成功,其它的也就OK了。

实现方式


  1. 找到m2e插件在工作空间生成的文件
$path_to_workspace/.metadata/.plugins
Eclipse Maven插件(m2e)库索引跨workspace共享的实现_第2张图片
m2e plugin位置
  1. 在我的目录下新建一个隐藏目录,既可以防止误删,又不影响观瞻
cd ~
mkdir .my_m2e_wp_dirs
  1. 进入一个成功建立索引的工作空间,把m2e插件的目录移动到上面建立的目录
cd $path_to_workspace/.metadata/.plugins
mv org.eclipse.m2e.* ~/.my_m2e_wp_dirs
  1. 为这些目录建立软连接
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.core org.eclipse.m2e.core
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.launching org.eclipse.m2e.launching
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.core.ui org.eclipse.m2e.core.ui
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.logback.configuration org.eclipse.m2e.logback.configuration
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.jdt org.eclipse.m2e.jdt
  1. 启动Eclipse,索引可用,完工。

注意事项


  1. 索引文件其实存在core目录中。上面的操作并不是只共享了索引文件,还有其它一些配置信息,如果所有的workspace用的maven版本和配置文件都相同的话,这样做会非常方便,新建workspce之后,不用每次都进行maven的配置。
    注意,如果不同的工作空间,使用的maven版本和配置文件不相同,那么请只共享索引文件,其它目录不要共享
Eclipse Maven插件(m2e)库索引跨workspace共享的实现_第3张图片
索引存储的位置
  1. 软连接可以写成shell脚本,放到固定位置,以后直接调用即可。我在共享目录下写了一个脚本,每次新建工作空间以后,进入到插件目录

cd $path_to_workspace/.metadata/.plugins


 然后执行脚本,内容如下:

``` shell
rm -rf org.eclipse.m2e.*
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.core org.eclipse.m2e.core
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.launching org.eclipse.m2e.launching
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.core.ui org.eclipse.m2e.core.ui
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.logback.configuration org.eclipse.m2e.logback.configuration
ln -s ~/.my_m2e_wp_dirs/org.eclipse.m2e.jdt org.eclipse.m2e.jdt

相关阅读

Eclipse m2e插件系统属性无法使用的解决方法

你可能感兴趣的:(Eclipse Maven插件(m2e)库索引跨workspace共享的实现)