使用常用的 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),包括 OpenJDK 的 Microsoft Build、Amazon Corretto、Eclipse Adoptium 和 Oracle Java SE。 VS Code 还能与所有 Java 框架、应用服务器和其他常用工具很好地集成,包括 Tomcat、Spring Boot、JBoss EAP、WildFly、Quarkus、Open Liberty、Maven 和 Gradle。 它还支持 Java 开发人员经常使用的其他编程语言,如 JavaScript 和 SQL。

Screenshot of Visual Studio Code that shows a Java file and the Output window.显示了 Java 文件和输出窗口的 Visual Studio Code 的屏幕截图。

VS Code 通过一系列适用于 Visual Studio Code 的 Java 扩展,支持并简化 Java 开发工作流程。 仅 Java 就有几百种扩展,你可以在 IDE 中进行搜索。 我们将用于 Java 基本开发的关键扩展打包成了 Java 扩展包。 此扩展包包括用于项目管理、Maven 集成、代码编辑、代码补全、代码导航、重构、着色、格式化、调试、运行和调试 JUnit/TestNG 测试用例等的扩展。 还有一个 Spring Boot 扩展包,可用于开发和部署 Spring Boot 应用程序,包括 Spring Initializr 支持。

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:初学者提示”命令。

Screenshot of Visual Studio Code that shows a Java file and sidebar pane.显示了 Java 文件和边栏窗格的 Visual Studio Code 的屏幕截图。

Azure Toolkit for IntelliJ

用于 IntelliJ 的 Azure 工具包可让 Java 开发人员使用 IntelliJ IDE 创建、开发、测试和部署 Java 应用程序到 Azure。 例如,开发人员可以用它来完成以下任务:

所有这些示例都使用了在 Azure 上运行 Java 的计算服务,我们将在本文档稍后部分详细介绍。 Spring Cloud Azure 集成通过 IntelliJ 中的 Spring Initializr 体验提供。 只需在 Java 项目中添加相应的 Java 库和驱动程序(包括用于 Java 的 Azure SDK)作为依赖项即可。

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

Screenshot of IntelliJ that shows a Java file and the Deploy to Azure dialog box.显示了 Java 文件和“部署到 Azure”对话框的 IntelliJ 的屏幕截图。

用于 Eclipse 的 Azure 工具包

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

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

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

Maven 和 Gradle 是 Java 应用程序常用的两种项目管理、依赖项管理和生成自动化工具。 这些工具已很好地集成到常用的 Java IDE 中,并通过每个工具的插件集支持一键部署到 Azure。

用于 Azure 服务的 Maven 插件

用于 Azure 服务的 Maven 插件可将 Maven 开发工作流程扩展到 Azure,在本地测试 Java 应用程序,然后将其部署到 Azure 服务,整个过程只需一个步骤,而且与 Azure 身份验证方法和 Azure 基于角色的访问控制集成在一起。 用于 Azure 应用程序服务的 Maven 插件有助于将 Maven Java Web 应用程序项目部署到 Azure 应用程序服务和应用程序服务中的自定义容器。 用于 Azure Functions 的 Maven 插件有助于将 Maven 无服务器 Java 应用程序项目部署到 Azure Functions。

Diagram that shows a laptop screen with the text 'mvn azure-webapp:deploy' and the heading Deploy Java Web App and Dependencies in One Step.显示了带有文本“mvn azure-webapp:deploy”的笔记本电脑屏幕,以及“一步部署 Java Web 应用和依赖项”标题的示意图。

适用于 Azure 服务的 Gradle 插件

用于 Azure 服务的 Gradle 插件与针对 Maven 的插件类似。 它们可让您只需一步就能将 Java 应用程序部署到 Azure 服务,并与 Azure 身份验证方法和 Azure 基于角色的访问控制集成。 用于 Azure 应用程序服务的 Gradle 插件有助于将 Gradle Java Web 应用程序项目部署到 Azure 应用程序服务和应用程序服务中的自定义容器,而用于 Azure Functions 的 Gradle 插件有助于将 Gradle 无服务器 Java 应用程序项目部署到 Azure Functions。

Diagram that shows a laptop screen with the text 'gradle azureWebAppDeploy' and the heading Deploy Java Web App in One Step.显示了带有文本“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 Pipelines

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

Azure Pipelines

Azure PipelinesAzure 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 将 JAR 或 WAR 文件部署到 Azure 容器应用:

az containerapp up \
    --name <CONTAINER_APP_NAME> \
    --resource-group <RESOURCE_GROUP> \
    --subscription <SUBSCRIPTION_ID> \
    --location <LOCATION> \
    --environment <ENVIRONMENT_NAME> \
    --artifact <JAR_FILE_PATH_AND_NAME> \
    --ingress external \
    --target-port 8080 \
    --query properties.configuration.ingress.fqdn

总结

在 Azure 中使用 Java 时,可以选择自己的工具。 可以使用自己选择的计算机(包括 Windows、macOS、Linux 和基于云的机器)来生成任何 Java 应用程序(包括多语言应用程序),并对其进行测试、调试和故障排除。 还可以将应用程序部署到 Azure 的任何应用程序服务器或任何嵌入式应用程序服务器上。

Diagram with the text 'Code using the Java tools you know and love' and logos for the tools described in this article.包含了文本“使用已知和喜爱的 Java 工具编写代码”和本文中所述工具的徽标的示意图。

下一步

自信、轻松地部署 Java 应用程序