盘点当下最流行的 Java 工具

简介:

最流行的工具并不一定是“最好的”,对于开发来说,什么是最好的,取决于使用场景。然而,当选择工具时,流行程度是不可忽视的一个重要因素,并不是因为工具的流行增加了其价值,而是因为广泛使用的社区带来了无价的资源和支持。

流行的工具更容易学习,因为会有很多人乐意帮助你。如果是开源的话,麻烦就更少了。因为有更多的人在审核代码和进行测试,能考虑到更多的情况。

在很多情况下,都会有一个对立的竞争对手,比如Apache和Nginx——两个web服务器。Apache被使用的更多,但是顶尖的网站使用Nginx更多,也就是说,顶级工程师更加青睐Nginx——在很多情况下,流行度可能是区分工具最重要的一点。

这份列表包含了开发Java应用程序所需要的大部分工具。包括最流行的、次流行的,他们都有强大的社区支持。Java的初学者需要认识一下这些工具,熟悉生态系统。

语言版本

最流行的:Java 8

次流行的:Java 7

Java 8可能是所有版本中被接受最快的。可能是因为,Java 8带来了期待已久的现代语言特性,例如lambda表达式,解决了长久以来Java饱受人们批评的冗长啰嗦的缺点。当然,性能也是一大方面。

虽然现在很多Java应用和主要的应用都是用Java 8写的,但也有很大数量的Java应用依然使用Java 7或6。

我不会蹚Java EE和Spring这趟浑水,因为一谈论这个,总是伴随着很多争吵,在用户数量方面,似乎相当。也有一些第三方开发者两者都用。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.9, 1.10)

DZone Guide to the Java Ecosystem, 2015 edition (graphs 1 & 2)

编辑器和IDE

最流行的:Eclipse和IntelliJ IDEA(存在争议)

次流行的:Netbeans

Eclipse和Netbeans都是免费、开源的。Eclipse以强大的社区和丰富的插件闻名(开发Eclipse插件非常方便),这让Eclipse平台的扩展性变得很强,但是这个IDE启动比较慢。Netbeans通过整合了Maven和Git等让自己变得与众不同。IntelliJ以性能著称,并且是一款商业产品。它有免费和付费两种版本。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016 (IntelliJ IDEA was the top IDE in this report, figure 1.11)

DZone Guide to the Java Ecosystem, 2015 edition (Eclipse was the top IDE in this one, paragraph 4)

Web Framework

最流行的:AngularJS,SpringMVC

次流行的:Java Server Faces(JSF)

三个调查中的两个都显示Spring MVC的受欢迎度比Java Server Faces(JSF)高,DZone的调查显示Spring MVC和JSF之间不分伯仲。随着JavaScript框架在web方面的发展,也许这些都不再重要了。有一个调查显示,AngularJS相比与纯Java框架,在前端方面更受欢迎。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.16)

DZone Guide to the Java Ecosystem, 2015 edition (chart 3, paragraph 5 shows a tie)

JSF and Spring MVC Tie in Java / JVM Frameworks Poll

应用服务器

最流行的:Tomcat

次流行的:Wildfly

很长时间以来,Tomcat都是最流行的Java应用服务器框架。它是一个轻量级框架,在一些其他调查中,Jetty——另一个轻量级应用框架——领先于Wildfly——最流行的Java EE支持的应用服务器。Tomcat在轻量Java应用方面无疑是霸主地位,是微型服务架构方面的最佳选择。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.13)

DZone Guide to the Java Ecosystem, 2015 edition(chart 4)

RebelLabs’ Great Application Server Debate 2013 (for a deeper dive into app server use cases)

测试框架

单元测试

最流行的:JUnit

名副其实的最佳Java测试框架

模拟

最流行的:Mockito

最受欢迎的Java模拟测试框架。

自动化Web浏览测试

最流行的:Selenium

Selenium只是自动化浏览测试。开发者经常使用这个工具配合其他的测试框架,来测试大型Web应用。

行为驱动开发测试(BDD)测试

最流行的:Cucumber-JVM, Spock

Cucumber最开始只是一个Ruby项目,但是现在已经用各大主流编程语言实现了。Spock支持JVM驱动的语言Groovy,当然也支持Java。Mockito能做的事情它基本上都能做。

数据

RebelLabs Java Tools and Technologies Landscape Report 2014

DZone Guide to Continuous Delivery, 2015 edition (page 20)

版本控制系统

最流行的:Git

次流行的:Subversion

记住,使用Git比仅仅使用Github和简单提交那样更加灵活。现在来看,Git赢得了版本控制大战的胜利,很多Subversion和CVS的用户逐渐开始转向Git。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.18)

持续集成

最流行的:Jenkins

次流行的:No CI server

在这方面也有一个明显的巨头。Jenkins灵活的插件系统,在过去的五年间逐渐控制了这个领域。其余Jenkins的竞争对手中,更多的人选择No CI server。接下来是Bamboo。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.13)

DZone Guide to Continuous Delivery, 2015 edition (page 20)

DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)

数据库

最流行的:OracleDB

次流行的:MySQL

在所有这些工具中,数据库可谓是最取决于使用场景的。取决于你要创建的应用的不同,你可能需要一个轻量的键值对存储数据库,或者存储很多列的数据库。对于大多数的应用来说,一般的数据库就能满足需求,这就是为什么这两种数据库可以排名前列的原因。

Oracle是这篇文章中为数不多的商业软件,这意味着,它有很多“企业级”特性。如果你偏爱开源软件的话,强烈推荐MySQL和SQLite。

数据

DB-Engines Database Rankings

DZone Guide to Databases 2016

RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.14, this is the only Java-specific one)

对象关系映射

最流行的:The Java Persistence API (JPA) / Hibernate

次流行的:The Java Database Connectivity API (JDBC)

Hibernate太流行了,多年前就在Java Persistence API成了标准。

数据

DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)

RebelLabs Java Tools and Technologies Landscape Report 2014 (page 31)

静态代码分析

最流行的:FindBugs

次流行的:SonarQube

这两个工具非常不同,所以很难比较。FindBug是一个简单的静态代码分析工具,SonarQube是一个全平台的代码质量分析、语法检查、代码度量的工具。

数据

DZone Guide to Continuous Delivery, 2015 edition (page 20)

RebelLabs Java Tools and Technologies Landscape Report 2014 (page 2)

语法检查

最流行的:Check

次流行的:Eclipse

大型的Java IDE都有这个功能,但是如果你需要特定的程序专门进行类型检查,Check 是一个不错的选择。

数据

DZone Guide to Continuous Delivery, 2015 edition(page 20)

人工仓库管理

最流行的:Sonatype Nexus

次流行的:JFrog Artifactory

很多开发者并不使用人工仓库管理JARs,WARs,库和应用。但是如果想这么做的话,Nexus是最好的选择。两者都是商业软件,Apache Archiva是一个开源的选择。

数据

RebelLabs Java Tools and Technologies Landscape Report 2014 (page 45)

控制反转

最流行的:Spring Framework DI

次流行的:Google Guice

Spring framework在控制反转方面做的很不错,但是Google的开发者也做了一个不错的工具。Dagger在这方面的用户并不很多,但是正在逐渐流行起来,尤其是安卓开发方面。Pokémon Go使用的也是它。

数据

Poll of reddit.com/r/java

性能分析

Java性能总览

最流行的:VisualVM

次流行的:No profiler

有相当一部分的开发者并不使用性能分析工具(也许他们有专业的性能优化团队来做)。YourKit也是替代VisualVM的一个不错选择。

载入测试

最流行的:JMeter

次流行的:LoadRunner

除了这两款工具之外,还有很多做载入性能测试的工具,所以在使用之前,最好做好充分的市场调研。JMeter是开源软件,LoadRunner是商业软件。商业软件的好处是服务广泛,可以在云端运行测试。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.19)

DZone Guide to Continuous Delivery, 2015 edition (page 20)

编译自动化和依赖管理

最流行的:Maven

次流行的:Gradle

Maven无疑占据了领导地位,但是Gradle的使用也很广泛,它还是安卓的标准编译工具。

数据

RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.12)

DZone Guide to the Java Ecosystem, 2015 edition (chart 4)

日志库

最流行的:Log4j

次流行的日志库尚不明确,这方面的调查比较少。这篇文章的内容场景围绕流行的日志库和Java中的设置展开。

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
21天前
|
监控 Java 测试技术
Java开发现在比较缺少什么工具?
【10月更文挑战第15天】Java开发现在比较缺少什么工具?
31 1
|
12天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
12天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
15天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
1月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
35 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
26天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
35 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
27天前
|
Java C++
做了个Java打包工具,可以双击启动了!
本文介绍了作者日常使用Java和Swing进行开发的经验,以及Java程序分发时遇到的问题,如需要JRE环境。文中列举了几种常见的Java程序打包方法,并对比了各自的优缺点,最后作者结合这些方案,利用Winform开发了一款工具,将Java程序打包成二进制可执行文件,简化了分发流程。
做了个Java打包工具,可以双击启动了!
|
1月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
32 2
|
2月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
79 5
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
49 3
下一篇
无影云桌面