Eclipse m2e插件的Maven庫(kù)索引的作用
利用m2e插件的索引匹耕,可以方便的檢索maven庫(kù)的可用項(xiàng)目聚请,不用每次去中心庫(kù)或者項(xiàng)目官網(wǎng)找稳其,尤其一些項(xiàng)目官網(wǎng)在墻外驶赏,查起來(lái)比較困難既鞠。
上圖中,灰色的表示jar文件在本地庫(kù)嘱蛋,黑色的表示在遠(yuǎn)程庫(kù)(maven中心倉(cāng)庫(kù)蚯姆,或者配置的其它鏡像庫(kù))。
位置:m2e將索引存儲(chǔ)到了workspace
存儲(chǔ)在workspace中洒敏,優(yōu)點(diǎn)是可以比較好的隔離不同項(xiàng)目集,修改一個(gè)不會(huì)影響其它郭毕。同時(shí)也帶來(lái)一些問(wèn)題:
- 每次更換workspace就需要重新建立索引
- 一個(gè)workspace的索引更新后,其它索引不能同時(shí)更新函荣,需要在使用時(shí)重新更新
- 最關(guān)鍵的显押,在天朝,這速度是龜速的傻挂,動(dòng)輒是以小時(shí)為單位進(jìn)行的,新建一次workspace重建索引的時(shí)間簡(jiǎn)直無(wú)法忍受金拒,更別說(shuō)不是每次build都能成功,完成一次建立好幾天一點(diǎn)兒也不奇怪殖蚕。
所以我決定,把索引拿出來(lái),每個(gè)工作空間都共享鞭呕,只要一個(gè)建立和更新成功,其它的也就OK了。
實(shí)現(xiàn)方式
- 找到m2e插件在工作空間生成的文件
$path_to_workspace/.metadata/.plugins
- 在我的目錄下新建一個(gè)隱藏目錄底洗,既可以防止誤刪咕娄,又不影響觀瞻
cd ~
mkdir .my_m2e_wp_dirs
- 進(jìn)入一個(gè)成功建立索引的工作空間,把m2e插件的目錄移動(dòng)到上面建立的目錄
cd $path_to_workspace/.metadata/.plugins
mv org.eclipse.m2e.* ~/.my_m2e_wp_dirs
- 為這些目錄建立軟連接
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
- 啟動(dòng)Eclipse费变,索引可用圣贸,完工挚歧。
注意事項(xiàng)
- 索引文件其實(shí)存在core目錄中吁峻。上面的操作并不是只共享了索引文件,還有其它一些配置信息矮慕,如果所有的workspace用的maven版本和配置文件都相同的話(huà)啄骇,這樣做會(huì)非常方便凡傅,新建workspce之后肠缔,不用每次都進(jìn)行maven的配置夏跷。
注意明未,如果不同的工作空間,使用的maven版本和配置文件不相同趟妥,那么請(qǐng)只共享索引文件,其它目錄不要共享
-
軟連接可以寫(xiě)成shell腳本亲雪,放到固定位置疚膊,以后直接調(diào)用即可。我在共享目錄下寫(xiě)了一個(gè)腳本寓盗,每次新建工作空間以后璧函,進(jìn)入到插件目錄
cd $path_to_workspace/.metadata/.plugins
然后執(zhí)行腳本基显,內(nèi)容如下:
``` 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