快速入门:在 Azure 应用服务中创建 Java 应用

在本快速入门中,你将使用适用于 Azure 应用服务 Web 应用的 Maven 插件将 Java Web 应用程序部署到 Azure 应用服务中的 Linux Tomcat 服务器。 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 使用选项卡在 Tomcat、JBoss 或嵌入式服务器 (Java SE) 指令之间切换。

在 Azure 应用服务中运行的 Maven Hello World Web 应用的屏幕截图。

如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:

如果没有 Azure 订阅,可在开始前创建一个试用帐户

1 - 使用 Azure cli

2 - 创建 Java 应用

在 cli 提示符下,执行以下 Maven 命令来创建一个名为 helloworld 的新应用:

mvn archetype:generate "-DgroupId=example.demo" "-DartifactId=helloworld" "-DarchetypeArtifactId=maven-archetype-webapp" "-DarchetypeVersion=1.4" "-Dversion=1.0-SNAPSHOT"

然后,将工作目录更改为项目文件夹:

cd helloworld

3 - 配置 Maven 插件

部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,则 Maven 插件会使用 OAuth 或设备登录来进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证

运行接下来显示的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.14.1:config
  1. 对于“创建新的运行配置”,请键入 Y,然后按 Enter

  2. 对于“定义 OS 的值”,请键入 1(对于 Windows)或 2(对于 Linux),然后按 Enter

  3. 对于 javaVersion 的定义值,键入 1 表示 Java 21,然后按 Enter

  4. 对于“定义 WebContainer 的值”,请键入 1(对于 Tomcat 101),然后按 Enter

  5. 要定义 pricingTier 的值,请输入 3 来表示 P1V2,然后按 Enter 键。

  6. 对于“确认”,请键入 Y,然后按 Enter

    Please confirm webapp properties
    AppName : helloworld-1745408005556
    ResourceGroup : helloworld-1745408005556-rg
    Region : chinanorth2
    PricingTier : P1V2
    OS : Linux
    Java Version: Java 21
    Web server stack: Tomcat 10.1
    Deploy to slot : false
    Confirm (Y/N) [Y]: 
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:36 min
    [INFO] Finished at: 2025-04-23T11:34:44Z
    [INFO] ------------------------------------------------------------------------
    

确认选择后,该插件会将上述插件元素和必需设置添加到项目的 pom.xml 文件,该文件将 Web 应用配置为在 Azure 应用服务中运行。

pom.xml 文件的相关部分应类似于以下示例。

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>           

可以直接在 pom.xml 中修改应用服务的配置。

请注意 <appName><resourceGroup> 的值(在演示中相应地为 helloworld-1745408005556helloworld-1745408005556-rg)。 稍后会使用它们。

4 - 部署应用

pom.xml 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。

mvn package azure-webapp:deploy

从可用订阅列表中选择后,Maven 将部署到 Azure 应用服务。 部署完成后,应用程序已于 http://<appName>.chinacloudsites.cn/ 准备就绪(http://helloworld-1745408005556.chinacloudsites.cn 在演示中)。 使用本地 Web 浏览器打开 URL,应会看到

在 Azure 应用服务中运行的 Maven Hello World Web 应用的屏幕截图。

恭喜! 现已将第一个 Java 应用部署到应用服务。

5 - 清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在 Cli 中运行以下命令来这样做:

az group delete --name <your resource group name; for example: helloworld-1745408005556-rg> --yes

此命令可能需要花费一点时间运行。

在本快速入门中,你将使用适用于 Azure 应用服务 Web 应用的 Maven 插件将具有嵌入式服务器的 Java Web 应用程序部署到 Azure 应用服务。 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 使用选项卡可在 Tomcat 或嵌入式服务器 (Java SE) 指令之间切换。

本快速入门使用 azure-webapp-maven-plugin 插件部署 Spring Boot 应用、嵌入式 Tomcat 或 Quarkus 应用。

如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:

如果没有 Azure 订阅,可在开始前创建一个试用帐户

1 - 使用 Azure 本地 Shell

2 - 获取示例应用

  1. 下载并提取默认 Spring Boot Web 应用程序模板。 运行 Spring CLI 命令 spring boot new my-webapp 时,会克隆此存储库。

    git clone https://github.com/rd-1-2022/rest-service my-webapp
    
  2. 将工作目录更改为项目文件夹:

    cd my-webapp
    

3 - 配置 Maven 插件

部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,则 Maven 插件会使用 OAuth 或设备登录来进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证

运行接下来显示的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.14.1:config
  1. 对于“创建新的运行配置”,请键入 Y,然后按 Enter

  2. 对于“定义 OS 的值”,请键入 2(对于 Linux),然后按 Enter

  3. 对于 javaVersion 的定义值,键入 1 表示 Java 21,然后按 Enter

  4. 对于“定义 pricingTier 的值”,请键入 3(对于 P1v2),然后按 Enter

  5. 对于“确认”,请键入 Y,然后按 Enter

    Please confirm webapp properties
    AppName : <generated-app-name>
    ResourceGroup : <generated-app-name>-rg
    Region : chinanorth2
    PricingTier : P1v2
    OS : Linux
    Java Version: Java 21
    Web server stack: Java SE
    Deploy to slot : false
    Confirm (Y/N) [Y]: 
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  47.533 s
    [INFO] Finished at: 2025-04-23T12:20:08Z
    [INFO] ------------------------------------------------------------------------
    

确认选择后,该插件会将上述插件元素和必备设置添加到项目的 pom.xml 文件中,该文件将 Web 应用配置为在 Azure 应用服务中运行。

pom.xml 文件的相关部分应类似于以下示例。

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>           

可以直接在 pom.xml 中修改应用服务的配置。

注意 <appName><resourceGroup> 的值。 稍后会使用它们。

4 - 部署应用

pom.xml 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。

  1. 使用以下命令生成 JAR 文件:

    mvn clean package
    

    提示

    Spring Boot 会生成两个 JAR 文件 mvn package,但 azure-webapp-maven-plugin 选取正确的 JAR 文件以自动部署。

  2. 使用以下命令部署到 Azure:

    mvn azure-webapp:deploy
    

    从可用订阅列表中选择后,Maven 将部署到 Azure 应用服务。 部署完成后,会看到以下输出:

    [INFO] Successfully deployed the artifact to https://<app-name>.chinacloudsites.cn
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  02:20 min
    [INFO] Finished at: 2023-07-26T12:47:50Z
    [INFO] ------------------------------------------------------------------------
    

    应用程序已准备就绪,http://<appName>.chinacloudsites.cn/

使用本地 Web 浏览器打开 URL http://<appName>.chinacloudsites.cn/greeting(记下 /greeting 路径),你应该会看到:

屏幕截图显示在 Azure 应用服务中运行的 Spring Boot Hello World Web 应用。

恭喜! 现已将第一个 Java 应用部署到应用服务。

5 - 清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在本地 Shell 中运行以下命令来这样做:

az group delete --name <your resource group name; for example: quarkus-hello-azure-1690375364238-rg> --yes

运行此命令可能需要一分钟时间。

后续步骤