本文由HollisChuang 翻譯自 The Top 100 Java Libraries in 2016 – After Analyzing 47,251 Dependencies . 原做者:Henn Idanweb
咱們分析了GitHub中47,251個依賴,從中找出了排名前一百的Java類庫,讓咱們看看誰在前面,誰在後面。spring
咱們在漫長的週末的消遣方式就是瀏覽GitHub而且搜索流行的Java類庫。咱們決定把其中的樂趣與結果分享給你。json
咱們分析了GitHub中排名前3,862個項目中的47,251個導入語句,其中有12,059個Java類庫被依賴。咱們從這個列表中提取出前一百並把結果分享給你。服務器
最受歡迎的前20個Java類庫網絡
和上次分析結果一致,junit依舊是GitHub中最受歡迎的類庫。Java中的日誌API slf4j排名第二,log4j排名第四。mvc
Google的開源類庫Guava呈上升趨勢,排名第三(去年排名第四)。Guava中包含一系列誕生在谷歌內部的核心Java類庫。若是你不瞭解Guava或者你不知道如何使用它,你能夠閱讀Google Guava: 5 Things You Never Knew It Could Do框架
Spring類庫的崛起dom
Spring框架做爲Java EE的主要競爭對手在Java社區很流行,這一點也在GitHub中很好的提現了出來。在排名一百名之外,有44個類庫是與Spring相關的。最有趣的部分是Spring Boot的迅速崛起,關於這部份內容能夠閱讀Java Bootstrap: Dropwizard vs. Spring Boot.ide
排名靠前的Spring類庫:spring-boot
#13 – springframework.spring-context
#17 – springframework.spring-test
#22 – springframework.spring-webmvc
#24 – springframework.spring-core
#27 – springframework.spring-web
#36 – springframework.spring-jdbc
#37 – springframework.spring-orm
#38 – springframework.spring-tx
#40 – springframework.spring-aop
#47 – springframework.spring-context-support
#72 – springframework.boot.spring-boot-starter-web
#81 – springframework.security.spring-security-web
#82 – springframework.security.spring-security-config
#88 – springframework.boot.spring-boot-starter-test
#99 – springframework.security.spring-security-core
最受歡迎的JSON類庫
由於Java自己還不支持JSON(儘管Java9宣稱支持),因此咱們想經過GitHub中的項目來看看這些JSON類庫的受歡迎程度。
你不能經過他的使用量多少來選擇一個使用哪一個類庫,由於這些JSON框架的功能不盡相同。而是應該根據實際使用環境選擇最適合的。若是你不知道如何選擇,能夠參考JSON benchmark.
排名靠前的JSON類庫:
#14 – fasterxml.jackson.core.jackson-databind
#19 – google.code.gson.gson
#43 – json.json
#80 – googlecode.json-simple.json-simple
#89 – thoughtworks.xstream.xstream
神奇四俠
有不少有趣的新庫,甚至引發了咱們的注意,但咱們決定關注如下他們:
#68 – projectlombok.lombok – Lombok提供了簡單的註解的形式來幫助咱們消除一些必須有但顯得很臃腫的Java樣板代碼。
#90 – jsoup.jsoup – jsoup 是一款 Java 的 HTML 解析器,可直接解析某個 URL 地址、HTML 文本內容。它提供了一套很是省力的 API,可經過 DOM,CSS 以及相似於 jQuery 的操做方法來取出和操做數據。
#92 – io.netty.netty-all – 網絡應用程序框架,用於快速和方便的開發維護高性能協議服務器和客戶端
#98 –dom4j.dom4j – 處理XML的開源框架。它集成了XPath並提供全力支持DOM,JAXP和Java平臺。
前100個類庫的類型
魔術背後的科學(咱們是如何得出這份列表的)
你可能想知道咱們是如何得出這些信息的。咱們首先按照star數量把GitHub中的項目代碼pull到本地。咱們提取並分析了使用了Maven和Ivy的項目中用於依賴管理的 pom.xml / ivy.xml ,這給咱們提供了47,251分數據來源。
咱們作了一些瘋狂的挖掘和分析,最終咱們獲得GitHub中排名前3,862項目中的12,059個Java類庫。這樣就能夠很方便的對他們進行排名了,只要按照他們出現的次數排序就能夠了。
若是你想看看咱們的原始數據,這個文件能夠。雖然這篇文章中咱們已經介紹的比較清楚了,咱們仍然歡迎你來看看,確保咱們沒有錯過任何有趣的看法。
最後的一點想法
當咱們拿着這份列表與去年的結果作對比的時候,咱們發現一些小的類庫的排名有一些小的波動,Spring有明顯上升,而MongoDB消失在名單中。
若是你已經對類庫有了選擇,但你仍然尋找最終的工具,咱們有一個完美的建議給你。 Top 15 Tools Java Developers Use After Major Releases