有時候導入一些開源工程(maven結構的),在eclipse中(裝了插件m2eclipse後的)該工程前面
會有一個小的紅色感嘆號,但點開工程後沒有發現有打小紅叉的內容,這種狀況其實大部分是
jar包依賴出來問題形成編譯不能經過,若是有耐性能夠在src裏挨個點擊代碼打開,運氣好的話
就會發現有報錯內容(import 包名 not resloved),找到對應的jar包在maven dependencies下
點擊相關jar包發現沒法打開(正常加載的jar是能夠展開目錄結構的)。若是怕查找src麻煩,
也能夠直接在maven dependencies下挨個點擊,看哪一個jar不能正常展開目錄,說明就是這個jar
在maven下載或加載的時候出了問題,致使src下報錯,進而使整個工程出現「紅色感嘆號」。app
解決辦法:
這種問題基本上是因爲maven3和maven2的一些資源庫下載到本地的jar和其餘文件不一樣形成的,
若是是在maven3下報錯,則在eclipse中將maven的bin等相關配置改成maven2,而後從新update
maven工程,若是不報錯,則把下載後對應以前報錯的jar包等全部相關內容拷貝覆蓋掉maven3
的resposity裏,而後在將eclipse中的maven改爲3版本的,從新update後便可。eclipse
舉例:MetaQ(全稱Metamorphosis)的工程導入既是如此,直接用maven3時,其子模塊server,
server-wrapper,tools工程都報「紅色小感嘆號」,可是裏面的src沒有報「紅叉叉」,按照
上面的排查方式發現是quartz和aviator的包加載不上,隨後換成maven2後可以正常編譯加載了,
而後將maven2的resposity裏的這兩個包的內容覆蓋掉maven3裏的,再把eclipse裏的maven
改爲maven3後update便可。maven
解決辦法之一:插件
Maven -> Update Project...server