使用已知和喜爱的 Java 工具编写代码

作为 Java 开发人员,我们喜欢使用的工具。 我们有自己独特的方式与他们合作,帮助我们集中精力,保持高效,就像我们有我们的快捷方式和秘密,使事情更快更好。 无论是使用 IntelliJ、Eclipse 或 VS Code 进行编码,还是将 JUnit 用于测试,还是使用 Maven 或 Gradle 进行依赖项管理和生成自动化,都没有什么能迫使我们抛开首选工具并学习新内容。 这就是为什么 Azure 使 Java 开发人员能够在你喜欢的工具和框架以及所选操作系统上将其应用程序带到云中。 让我们仔细看看其中一些工具。

IDE - VS Code、IntelliJ 和 Eclipse

理想的 IDE 包括用于编辑源代码、编译、本地生成自动化、测试和调试的工具,以及用于数据管理、缓存、消息传送和事件的后端服务的控件和监视工具。 支持所有这些任务的集成工具集可提高开发人员工作效率,使他们能够避免在每个任务的独立工具之间学习和不断切换。 IntelliJ、Eclipse 和 Visual Studio Code 是常用的 Java IDE。

Visual Studio Code 上的 Java

Visual Studio Code (VS Code)是在 Windows、macOS 和 Linux 上运行的轻型不可知操作系统。 一个功能强大的 IDE,它为 Java 开发提供了全面的工具集。 它支持任何 Java 开发工具包(JDK),包括 Microsoft Build of OpenJDK、Amazon Corretto、Eclipse Adoptium 和 Oracle Java 标准版。 VS Code 还与所有 Java 框架、应用程序服务器和其他常用工具(包括 Tomcat、Spring Boot、JBoss EAP、WildFly、Quarkus、Open Liberty、Maven 和 Gradle)很好地集成。 它还支持 Java 开发人员经常使用的其他编程语言,如 JavaScript 和 SQL。

Visual Studio Code 的屏幕截图,其中显示了 Java 文件和“输出”窗口。

VS Code 通过各种适用于 Visual Studio CodeJava 扩展支持和简化 Java 开发工作流。 仅 Java 就有数百个扩展,可以从 IDE 本身中进行搜索。 我们将用于基本 Java 开发的密钥扩展打包到 Java 扩展包中。 此扩展包包括项目管理、Maven 集成、代码编辑、代码完成、代码导航、重构、linting、格式设置、调试、运行和调试 JUnit/TestNG 测试用例等的扩展。 还有一个 用于开发和部署 Spring Boot 应用程序的 Spring Boot 扩展包 -包括 Spring Initializr 与 Azure Spring Apps 集成的 Spring Initializr 支持,这是一项完全托管的服务,用于在 Azure 上运行 Spring Boot 应用程序。

Azure 工具扩展包由 Azure 工程团队构建,提供了一组丰富的扩展,用于发现和与所有有助于为 Java 应用程序提供支持的 Azure 云服务进行交互。 在编写、调试和测试 Java 应用时,可以使用 VS Code 中的所有扩展。 准备好部署应用时,Azure 工具扩展包支持一键式部署到 Azure 为运行 Java 应用程序提供的各种计算服务。

Visual Studio Code 中的 Java 提供了适用于 Java 开发的最常用的 Visual Studio Code 扩展的简要概述。 它还提供有关使用 Visual Studio Code 进行 Java 开发入门的说明,以及它有助于提高 Java 开发人员工作效率的多种方式的演练。

VS Code 中的 Java 入门提供了一个简短的教程,介绍如何设置用于 Java 开发的 VS Code,包括如何编写和运行 Hello World 程序。 同样,还有一些简短的教程演示如何使用 Visual Studio Code 生成 Java 应用程序,然后通过单击一下即可部署到服务中,例如以下代码:

如果你不熟悉 VS Code 上的 Java,请在主命令面板中试用“Java: 使用技巧 for Beginners”命令。

Visual Studio Code 的屏幕截图,其中显示了 Java 文件和边栏窗格。

Azure Toolkit for IntelliJ

Azure Toolkit for IntelliJ 允许 Java 开发人员使用 IntelliJ IDE 创建、开发、测试和部署 Java 应用程序到 Azure。 例如,开发人员可以使用它将 Java Web 应用程序部署到Azure App 服务中的Azure App 服务和自定义容器,将 Spring Boot 应用程序部署到 Azure Spring Apps,或将无服务器应用程序部署到 Azure Functions- 所有这些是用于在 Azure 上运行 Java 的计算服务,本文档稍后将对此进行详细介绍。 Spring Cloud Azure 集成通过 IntelliJ 中的 Spring Initializr 体验提供。 只需将相应的 Java 库和驱动程序 (包括用于 Java 的 Azure SDK)添加为 Java 项目中的依赖项。

Microsoft 正在积极投入时间和资源,为 IntelliJ 提供更多功能,包括云原生开发和与 Azure 服务更深入的集成体验,包括与 Azure Kubernetes 服务 和 Application Insights 的集成。

IntelliJ 的屏幕截图,其中显示了 Java 文件和“部署到 Azure”对话框。

Azure Toolkit for Eclipse

Azure Toolkit for Eclipse 允许 Java 开发人员使用 Eclipse IDE 创建、开发、测试和部署 Java 应用程序到 Azure。 它包括关键的 Java 库和驱动程序,包括用于 Java 的 Azure SDK。 开发人员可以使用用于 Eclipse 的 Azure 工具包完成 Eclipse IDE 中的以下任务:

  • 将 Java Web 应用部署到App 服务中的Azure App 服务和自定义容器。
  • 将 Spring Boot 应用程序部署到 Azure Spring Apps。
  • 使用 Maven 或 Gradle 插件将无服务器应用程序部署到 Azure Functions。

依赖项管理和生成自动化 - Maven、Gradle 和 GitHub

Maven 和 Gradle 是两种常用的项目管理、依赖项管理,以及为 Java 应用程序构建自动化工具。 这些工具已很好地集成到常用的 Java IDE 中,只需单击一下即可部署,以便通过一组工具的插件Azure 支持。

适用于 Azure 服务的 Maven 插件

使用适用于 Azure 服务的 Maven 插件,可将 Maven 开发工作流扩展到 Azure,在本地测试 Java 应用程序,然后单步将其部署到 Azure 服务 - 以与 Azure 身份验证方法和 Azure 基于角色的访问控制集成的方式。 用于Azure App 服务Maven 插件可帮助你将 Maven Java Web 应用程序项目部署到Azure App 服务和App 服务中的自定义容器。 适用于 Azure Spring AppsMaven 插件可帮助你将 Maven Spring Boot 应用程序项目部署到 Azure Spring Apps。 适用于 Azure FunctionsMaven 插件可帮助你将 Maven 无服务器 Java 应用程序项目部署到 Azure Functions。

此图显示了带有文本“mvn azure-webapp:deploy”的笔记本电脑屏幕,以及“一步部署 Java Web 应用和依赖项”标题。

适用于 Azure 服务的 Gradle 插件

适用于 Azure 服务的 Gradle 插件类似于 Maven 的插件。 通过它们,只需单步即可将 Java 应用程序部署到 Azure 服务 -- 以与 Azure 身份验证方法和 Azure 基于角色的访问控制集成的方式。 用于Azure App 服务Gradle 插件可帮助你将 Gradle Java Web 应用程序项目部署到Azure App 服务和App 服务中的自定义容器,而适用于 Azure Functions 的 Gradle 插件可帮助将 Gradle 无服务器 Java 应用程序项目部署到 Azure Functions

显示带有文本“gradle azureWebAppDeploy”和标题“一步部署 Java Web 应用”的笔记本电脑屏幕的关系图。

GitHub

GitHub 是 Java 应用程序的常用存储库,为 350 多万 Java 应用程序提供 DevOps 环境。 使用 适用于 Java 的 GitHub Actions,可以完成如下任务:

  • 下载并设置请求的 Java 版本。
  • 从本地文件提取和缓存 Java 的自定义版本。
  • 配置运行程序以使用 Maven、Gradle 或 GPG 私钥进行发布。
  • 为错误输出注册问题匹配程序。
  • 由 Maven 或 Gradle 管理的缓存依赖项。

借助 GitHub Actions,可以轻松地使用世界级的 CI/CD 自动执行所有 Java 软件工作流。 可以直接从 GitHub 生成、测试和部署代码到 Azure。 按照你所需的方式进行代码评审、分支管理和问题会审。 可以部署到任何用于运行 Java 应用程序的 Azure 服务。

GitHub 还支持 用于 Java 的开发容器,可以通过 GitHub Codespaces 或 VS Code 远程容器进行访问。

Jenkins 管道

许多在 Azure 上运行 Java 的 Microsoft 客户使用 Jenkins(开源自动化服务器)生成、测试和部署其应用程序。 如果使用 Jenkins,可以在 Azure DevOps、GitHub 或任何其他 源代码管理系统 中管理源代码,同时继续将 Jenkins 用于 CI/CD 生成,例如, 将代码推送到项目的 Git 存储库时触发 Jenkins 生成。

Azure Pipelines

Azure Pipelines 是 Azure DevOps 服务的一部分,可让你持续生成、测试和将 Java 应用程序部署到任何平台和云。 它适用于 GitHub(或 Azure Repos)进行源代码管理,使你 能够使用 Maven 或 Gradle 进行生成,然后部署到任何用于运行 Java 应用程序的 Azure 服务。

Azure 命令行接口

Azure 命令行接口(CLI)是用于创建、连接到和管理 Azure 资源的跨平台命令行工具,包括通过命令行提示或脚本执行终端命令。 可以在 Linux、macOS 或基于 Windows 的计算机本地安装 Azure CLI,从容器中运行它,或者通过 Azure Cloud Shell 从浏览器访问 Azure CLI。

以下示例演示如何使用 Azure CLI 将应用部署到 Azure Spring Apps:

# Deploy Payment Service
az spring app deploy \
    --name ${PAYMENT_SERVICE_APP} \
    --config-file-pattern payment/default \
    --source-path apps/acme-payment

# Deploy Catalog Service
az spring app deploy \
    --name ${CATALOG_SERVICE_APP} \
    --config-file-pattern catalog/default \
    --source-path apps/acme-catalog

总结

将 Java 与 Azure 配合使用时,可以选择自己的工具。 可以使用所选计算机(包括 Windows、macOS、Linux 和基于云的计算机)生成测试、调试和排查任何 Java 应用程序(包括 polyglot 应用程序)。 还可以在任何应用程序服务器或任何嵌入式应用程序服务器上将应用程序部署到 Azure。

包含文本“使用已知和喜爱的 Java 工具编写代码”和本文中所述工具的徽标的关系图。

下一步

自信和轻松部署 Java 应用程序