You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多个WAR包部署至Azure Web应用的GitHub Actions配置问题

解决方案

报错原因

你当前部署步骤中配置的package: '*.war'通配符匹配到了两个WAR包,部署插件无法判定优先部署哪个包,因此抛出匹配冲突错误。

实现逻辑

Azure App Service 部署WAR包到Tomcat运行时环境时,默认遵循Tomcat部署规则:

  • 名为ROOT.war的包会自动部署到站点根路径/
  • 名为xxx.war的包会自动部署到站点的/xxx路径,完全匹配你需要的/services路径需求

修改后的完整GitHub Actions配置

on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up Java version
        uses: actions/setup-java@v1
        with:
          java-version: '11'

      - name: Build with Maven
        run: mvn clean install

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v2
        with:
          name: java-app
          path: '${{ github.workspace }}/**/target/*.war'

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-frontend.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v2
        with:
          name: java-app

      - name: Rename frontend WAR to ROOT for root path deployment
        run: mv application.war ROOT.war

      - name: Deploy frontend to root path
        id: deploy-frontend
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'app-name'
          slot-name: 'Production'
          publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE }}
          package: 'ROOT.war'

      - name: Deploy backend to /services path
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'app-name'
          slot-name: 'Production'
          publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE }}
          package: 'services.war'

注意事项

  • 请确认你的Azure App Service运行时栈选择的是与Java 11兼容的Tomcat版本(推荐Tomcat 9.x)
  • 后端接口部署后访问路径会自动带上/services前缀,例如原本接口路径为/api/user,部署后访问路径为https://你的域名/services/api/user
  • 如果执行重命名步骤时提示找不到application.war,请调整mv命令的路径为下载后WAR包的实际存放路径

内容的提问来源于stack exchange,提问作者JSar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:45:04