對於Java項目,在github上看到的大多數都是基於maven構建的,現在很多也開始轉用Gradle,比如Hibernate和Spring。最近想研究一些開源項目,不過clone後匯入eclipse,發現源碼包是以普通檔案顯示的,這樣類之間不能直接跳轉,看起源碼來非常費力,如下圖所示:
出現上述情況的原因是,GitHub上Maven項目一般為了結構清晰且不依賴具體的IDE而沒有將本地設定檔放到版本庫中,這樣匯入Eclipse時由於沒有.classpath,.project而不能被識別成正規的項目,解決方案如下:
方法一、使用Maven產生Eclipse項目
mvn eclipse:eclipse
使用上述命令,將產生後的項目匯入Eclipse即可,此方式非常方便。
方法二、添加並修改.classpath和.project檔案
剛開始我採用的這種方式,後來發現太繁瑣就放棄使用,具體可以參考從GitHub將Maven項目匯入Eclipse4.2。
題外話:開源項目為什麼不用IDE構建。
一般而言,對於比較正規的項目都不會基於IDE構建,而是採用Ant,Maven,Gradle。
為什麼不採用IDE呢。
一、關於IDE的選擇,蘿蔔青菜各有所愛。有人喜歡Eclipse,有人喜歡MyEclipse,牛人有用Vim,所以對於一個項目,特別是公開項目,採用基於某一個特定的IDE就限制了開源使用者的選擇,降低開發人員的激情。實際上各種IDE 也是基於各種構建系統,不同的IDE,它們的構建方式不同,所以要讓不同的IDE間能一起開發,需要一個統一的構建工具。扯到構建工具, 一般c/c++ 項目用make,或者 premake. 而java 一般是ant,ivy,gradle,maven,還有直接的shell, 是不是很多沒聽說過呢? 去看開源項目就是長見識的時候了...
Maven,gradle提供將項目轉換為特定IDE的功能,比如mvn eclipse:eclipse,這樣使用者可以自己選擇喜歡的ide,方便快捷。。。
二、像Maven,gradle這樣的構建工具都提供jar的依賴管理,這樣上傳到github時就不用將jar包也上傳,可以節省很多空間。對於github提供的免費300M空間還是需要節約使用的。。。