本文由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