在整个Java项目开发过程中,有大量的工具被用于开发。在相同的阶段中,有很多工具可供选择,而且由于整个项目并不是一个人完成,因此需要大量的团队合作。所以在选择每一阶段工具的使用时,最好选择一般人都用到的,这样可以更好地完成团队合作。这篇文章将为您整理出Java开发的各个阶段常用工具。
Java语言版本。
java8是当前Java编程语言版本中使用最多的。也许是因为期待已久的现代语言功能,比如lambda表达式,降低了Java常常受到批评的冗长程度。这也是一个很大的卖点。
编辑与IDE。
Eclipse和Netbeans是免费和开放源码的。Eclipse以其庞大的社区和插件(易于编写)而出名,这使得这个平台无限地扩展,但是有时候加载速度慢,也很麻烦。Netbeans因为包括Maven和Git这样的集成而变得与众不同。IntelliJ具有完美的商业功能。这个软件有免费版和付费版。
网络框架。
2/3的调查表明SpringMVC优于JavaSErverFaces(JSF),但SpringMVC与JSF却打平。由于JavaScript框架在很多流行的web协议中变得越来越有价值,所以这可能并不重要。一份调查问了AngularJS和纯Javaweb框架的使用情况,结果表明,AngularJS在前端优于大多数Java框架。
程序服务器。
Tomcat已成为最常用Java应用服务器的头衔多年。这很简单,而且不会试图实现所有的JavaEE规范。Jetty是另一种轻量级应用服务器,由Wildfly--顶部JavaEEE--所支持的应用服务器领先。Tomcat领先于简单Java应用,而轻量级应用服务器无疑是微服务架构的首选。
版本管理系统。
切记,Git要比只使用GitHub和它习惯的版本控制更加灵活。Git看起来已经基本赢得了版本控制战争,Subversion和CVS的大部分用户都是由开发者所掌握的一套遗留工具。
连续整合。
在这个领域,有明显的领导作用。Jenkins灵活的插件系统,使得它在过去的五年中逐渐成为主流。没有使用任何CIserver的人超过了使用一个Jenkins竞争对手的人数。最近的竞争对手是班博。
数据库
与其它很多工具相比,选择数据库更加依赖于上下文。取决于您要构建的app,您可能需要一个轻巧的key-value存储,以及一个大型的列数据库。对大多数应用程序来说,关系数据库能够很好地完成这一工作,因此您将看到两个关联数据库站在Java工具世界的顶端。在本文中,Oracle是为数不多的商业产品之一,这就意味着它具有许多“公司”特征。MySQL或者甚至SQLite都是开放源码的强大选择。
ORM(ORM)
Hibernate非常流行,几年前被JavaPersistenceAPI规范标准化。
程序静态分析。
FindBugs是一种简单的静态代码分析工具,SonarQube是一种用于代码质量分析、语法检查和代码测量的完整平台。上述两种工具的范围各不相同,因而难以进行比较。
文法检验
这个特性存在于主javaide中,但是如果您需要为特殊的语法检查(也称为"linting"),Checkstyle是一个很好的选择。
构件管理。
很多开发者在版本化JAR、WAR、库和完整的app时不使用工件仓库。但如果是的话,Nexus具有用户优势。两个都是商品。ApacheArchiva是一个开源的选择。
依存注入
SpringFramework在依赖注入方面做得非常出色,但是谷歌开发人员还使用Guice创建了一个受欢迎的工具。Dagger不太流行,但是非常新,用户正在增长,尤其是围绕Android开发。这是用来制作波克曼戈的。
绩效分析/分析器。
Java开发人员明显地没有使用任何分析程序。YourKit是VisualVM中另一种流行的备选分析程序。
负荷测试。
除此之外,还有很多各种各样的负载测试工具,因此请务必检查此市场。JMeter是开放源码的,LoadRunner是商用的。商用产品最大的优势在于可以运行测试的云服务。
自动构建和依赖管理。
尽管Maven显然领先,Gradle还是被广泛地作为辅助构建工具和Android的标准构建工具。
在上述的Java开发流程的不同阶段中,您在使用哪些工具?文中的一些观点来源于网络,仅供参考。