Java 程序员必须掌握的 10 款开源工具
Java 世界中存在许多工具,从 Eclipse,NetBeans 和 IntelliJ IDEA 等著名的 IDE 开始到 Java 开发人员应该知道的 JVM 分析和监视工具,如 JConsole,VisualVM,Eclipse Memory Analyzer 等。
1. JIRA
Atlassian 的 JIRA 是当前敏捷开发领域最重要的工具之一。它用于错误跟踪,问题跟踪和项目管理。如果你遵循敏捷开发方法,例如 Sprint 和 Scrum,那么你必须了解 JIRA。它允许您创建 Spring 循环并跟踪软件开发的进度。
![](https://static001.geekbang.org/infoq/16/16cad7eb2685172931f4d2ab6be86b9b.webp?x-oss-process=image/resize,p_80/format,jpg)
JIRA 是目前比较流行的基于 Java 架构的管理系统,由于 Atlassian 公 司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。
2. Git
Git 是 Java 程序员的另一个必备工具,它是一个免费的开源分布式版本控制系统,旨在快速高效地处理从很小到非常大的项目版本管理。Git 易于学习,占用空间小,具有超强的性能。
![](https://static001.geekbang.org/infoq/53/530c99c4687cffbf87bc3adbb355bbdf.webp?x-oss-process=image/resize,p_80/format,jpg)
最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是发现已经在很多其他自由软件项目中也使用了 Git。
3. Jenkins
![](https://static001.geekbang.org/infoq/28/283cd7cf08219e0c74ac711df246fb96.webp?x-oss-process=image/resize,p_80/format,jpg)
Jenkins 是一个用 Java 编写的开源自动化服务器。它有助于自动化软件开发,例如编译项目,运行单元测试,集成测试,生成文档以及在本地和远程存储库上载工件。主要用于:
● 持续、自动地构建/测试软件项目,如 CruiseControl 与 DamageControl。
● 监控一些定时执行的任务。
它是在项目中持续集成中最流行的工具之一。如果你还没有开始使用 Jenkins,那就从现在开始吧。
4. Selenium
![](https://static001.geekbang.org/infoq/df/df91e2cf8e2ccb23e607da138e31e9ad.webp?x-oss-process=image/resize,p_80/format,jpg)
Selenium 是 Web 应用程序最好的软件测试框架之一。它提供了一种用于创作测试的回放工具,而无需学习测试脚本语言。Java 开发人员可以使用 Selenium 来测试他们的 HTML 和 JSP 文件。
它还为 Web 浏览器自动化提供了各种工具和库。Selenium 现在存在 2 个版本,一个叫 selenium-core, 一个叫 selenium-rc 。最新 Java 面试题分享给你看下。
5. Groovy
![](https://static001.geekbang.org/infoq/b4/b4522afbf6061157058851728e2983ac.webp?x-oss-process=image/resize,p_80/format,jpg)
Groovy 是一种基于 JVM 的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。你可以使用它编写构建脚本,测试脚本,甚至可以使用像 Gradle 和 Spock 这样的流行框架。
6、Spock
Spock 是适合 Java 和 Groovy 应用程序的一个测试框架。由于其 JUnit 运行程序,Spock 与大多数 IDE,构建工具和持续集成服务器兼容。
如果你想提高你的单元测试技能,那么多花点时间在学习 Spock 上总是没错的。
7. Maven
![](https://static001.geekbang.org/infoq/e2/e221e5fa846fb004a3b8492adb641834.webp?x-oss-process=image/resize,p_80/format,jpg)
如果你是一位经验丰富的 Java 开发人员,那么你一定非常了解 Maven 了,Apache Maven 是一个构建和项目管理工具,基于项目对象模型(POM)的概念,Maven 可用于管理项目的生成、报告和文档记录。
Maven 的另一个有用特性是依赖关系管理,java培训由于我们在 Java 项目中使用了大量第三方库,因此手动管理每个 JAR 及其依赖项可能非常麻烦,Maven 通过自动为你下载正确的 JAR 来帮助你解决问题
8. Gradle
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具。它也是 Android 的默认构建工具。
![](https://static001.geekbang.org/infoq/18/18ac463468a6d2f371e760704303cf53.webp?x-oss-process=image/resize,p_80/format,jpg)
它引入了基于 Groovy 的特定于域的语言(DSL),而不是 Apache Maven 用于声明项目配置的 XML,这样有利于配置项目依赖关系以及用户的项目自定义
为什么选择 Gradle 在 Ant 或 Maven?因为它结合了其他构建工具的最佳特性,例如它具有 Ant 的灵活性和控制,Ivy 的依赖管理,Maven 的配置和插件的约定,以及可以在 Ant 上使用 Groovy DSL。这使它成为 Java 项目的最佳构建工具。
9. Docker
![](https://static001.geekbang.org/infoq/d2/d2464a1ece4f585f243670777505bd9f.webp?x-oss-process=image/resize,p_80/format,jpg)
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。
10. Linux
初学 Linux 最好从 Linux 命令行基础知识开始,Linux 是一种自由和开放源码的类 Unix 操作系统,在你的职业生涯中起到重要的作用,每一个 Java 开发者都应该学 Linux。
评论