使用github将多模块javaspring启动应用程序部署为azurewebapp

oxf4rvwz  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(283)

我已经构建了一个包含5个模块(4个)的多模块JavaSpringBoot项目 .war &1个图书馆 .jar ). 我部署了每一个 .war 通过在根目录下构建我的项目,使标准tomcat获得成功:

mvn clean package -P production

到现在为止,一直都还不错。但我正在考虑使用app服务功能在azure上托管我的应用程序(我以前从未使用过),并从github导入它,所以我做了一个测试帐户来尝试。我发现了一些教程,比如将javaweb应用程序部署到azure云(因为我的一个应用程序使用vaadin框架)以及azure的多模块spring boot项目(因为多模块结构)。

所以我试了两种方法,但都不管用:
第一个不适合我的结构,因为我的所有应用程序都依赖于我的 .jar 项目中的库。
第二个似乎是正确的方向,我只是将我的项目从github repo导入到azure中,没有做任何更改。在github接口中,项目成功构建但未部署,我想我必须调整我的项目,使其可部署到azure,但我找不到我要做的:

我不知道我是否足够清楚,或者您是否需要从项目结构或代码中提取任何内容。告诉我是不是真的!
这是我的根的摘录 pom.xml ```

module1 <-- war
module2 <-- war
module3 <-- war
module4 <-- war (vaadin webapp)
module5 <-- jar library

pom

谢谢你的帮助。
更新:
我尝试部署一个没有模块的标准java项目,使用github非常简单。
我只需要有一个包含我要编译的项目的存储库,将它连接到将生成 `main_appName.yml` 包含所有编译和部署信息的文件,例如:

Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy

More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy WAR app to Azure Web App - test-azure

on:
push:
branches:
- main
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: '8'

- name: Build with Maven
  run: mvn clean install -P production

- 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-to-webapp.outputs.webapp-url }}

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

- name: Deploy to Azure Web App
  id: deploy-to-webapp
  uses: azure/webapps-deploy@v2
  with:
    app-name: 'APP_NAME'
    slot-name: 'production'
    publish-profile: ${{ secrets.AzureAppService_PublishProfile_6199c38980a7482abb04c6b0b39f2ba5 }}
    package: '*.war'
这将自动构建和部署应用程序,并实现这一点。但现在我不得不使用 `.jar` 因此是一个多模块的项目。我开始只练习两个模块(我的 `.war` webapp和我的 `.jar` 但当使用相同的.yml文件时,它会尝试部署父模块,而父模块是 `.pom` 失败了。
我正在这个配置文件中寻找要编辑的内容,但找不到。
谢谢您!
i86rm4rw

i86rm4rw1#

您可以在此处找到有关如何部署到azure云的分步教程:https://vaadin.com/learn/tutorials/cloud-deployment/azure

相关问题