现在有很多库、实用工具和程序任java开发人员选择。每个工具都有其优点,但其中有一些因它的知名度、多功能性和有效性从众多选项中脱颖而出。
以下这8个工具,从代码构建到错误挤压,覆盖java开发的全域。学习这些工具可以帮助你改善代码质量,成为一个更高效的java开发人员。
1.eclipse
尽管intellij idea、netbeans和一些其他的ide正在日益普及,但是有调查表明,eclipse仍然是几乎半数java开发人员首选的开发环境。 eclipse是ide领域的瑞士军刀,有着大量定制的接口和无数的插件。它无处不在,后面本文将推荐的其他所有工具都提供eclipse插件。
eclipse的工作流程可分为三个方面:工作台,工作空间和视角。工作台作为到ide的出发点。工作空间将项目、文件和配置设置组合在一个单独的 目录下。视角定义工具、视图和有效设置。虽然新手开发人员可能会觉得相比netbeans和intellij idea,eclipse使用起来更难,但eclipse的灵活性,使其成为企业开发的首选ide。
luna,eclipse的最新版本,支持java 8、分屏编辑、新的黑色主题,以及一个功能齐全的命令行终端。
官方网站:https://eclipse.org/
2.gradle
gradle是一个自动化项目工具,建立在apache maven和apache ant的功能上。虽然gradle并不是最流行的构建工具(最流行的是maven,64%的java开发人员会选择它),但它的普及速度很快。它也可作为默认的android构建工具。
gradle引以为傲的是它的简单。gradle使用groovy编程语言,与maven和ant使用xml语法截然相反。一个基本的gradle构建文件由一行简单的代码组成:
apply plugin: 'java'.
下面的命令会生成一个gradle构建文件,创建项目文件的目录树,并附带一个项目便携式gradle封装:
$ gradle init --type java-library
gradle还有可用于添加新的语言,生成支持ide的项目文件,构建本地二进制文档,检查依赖性更新等等的插件。
想要了解更多信息,请参见gradle的java / jvm入门指南。
官方网站:https://gradle.org/
3.javadoc
javadoc是oracle提供的文档生成器。它可以将特殊格式的注释解析为html文档。以下截图就是javadoc生成的java se 8 api规范:
javadoc注释使用开放标签、关闭标签,以及一个或多个描述性标签的格式。开放式标签类似于标准java多行注释标记,使用两个星号的除外。javadoc也解析普通的html标签。
javadoc自动格式化标签和关键字,除非另有规定。javadoc广泛使用超链接,允许你参考和链接到代码的不同区域。许多ide——包括 eclipse——可以自动添加javadoc注释模块到变量、类和方法中。支持maven、gradle和ant的插件在编译代码的同时也可以构建 javadoc html。
想要了解更多信息,请参阅oracle关于如何为javadoc工具写文档注释的文章。
官方网站:http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html
4.junit
junit是用于编写和运行单元测试的开源框架。一个基本的junit测试包括测试类、测试方法、以及执行测试的功能。 junit使用标注来确定测试如何构造和运行。例如,如果你的程序有一个类叫做mathclass,具有乘法和除法的方法,你可以创建junit测试来检 查不符合预期的值。输入数字2和5到乘法方法,你希望得到的结果为10。当输入0作为除法方法的第二个参数时,你会期望给出一个数字计算异常的警告因为除 数不能为0:
@test标注规定,mathclass方法是一个测试用例。 在junit提供额外的标注,比如@before,这样你就可以在测试运行之前设置环境。 junit还可以设置规则用于定义测试方法的行为。例如,temporaryfolder规则使得一旦测试完成,由测试创建的文件或文件夹就会被删除。
想要了解更多信息,请参考junit入门。 此外还有使用junit单元测试的教程。
官方网站:http://junit.org/
5.cobertura
cobertura可用于分析java代码的测试覆盖率。cobertura根据没有被测试覆盖的代码生成基于html的报告。
cobertura提供可用于插装、检查和测试代码的工具。通过监控可测试的代码,cobertura允许你使用你选择的测试框架,甚至不需要测试框架就可以运行程序。
cobertura根据行、分支和程序包三个方面给出代码覆盖报告。每个类别都有一个可自定义的阈值,如果覆盖面低于阈值,就会触发警告。cobertura还集成了maven和gradle 的自动检测功能。
mkyong.com提供了一个将cobertura与maven整合的示例。
官方网站:http://cobertura.github.io/cobertura/
6.findbugs
findbugs是一个匹配编译代码模式,而非使用bug数据库的工具。当提供源代码时,findbugs还可高亮显示检测出bug的代码行。
在它的3.0.1版本中,findbugs继续保持着数以百计的bug描述。根据bug的严重程度,findbugs将bug分为四个水平:相关 的,令人困扰的,可怕的,以及最可怕的。除了图形用户界面,findbugs还提供一个命令行界面,ant任务,以及eclipse插件。
官方网站:http://findbugs.sourceforge.net/
7.visualvm
包含在jdk中的visualvm是监控和审查java应用程序性能的工具。 visualvm检测并重视活跃的jvm实例来检索有关进程的诊断信息。
visualvm可以很容易地实时诊断性能问题。它提供了全套的分析工具,包括jconsole、jstack、jmap、jinfo和jstat等。此外,你还可以对jvm做一个快照,这样以后在任何时都能审查。
官方网站:http://visualvm.java.net/
8.groovy
groovy是一种编程语言,通过添加新的关键字,自动导入常用的类,以及可选类型变量声明,既简化又扩展了java。
groovy的核心优势之一是它的脚本功能。类可以被编译为java字节码或使用groovy shell动态执行。groovy的java基础使得它相较于jython和jruby更容易为java开发人员所接受。
想要了解更多信息,请参见groovy的入门指南。
官方网站:http://www.groovy-lang.org/
其他选择
java这个大世界中正在不断涌现新的工具、实用程序和库。如果你的首选工具没能进入上述名单,欢迎分享。