如何将 Spring 启动(可执行 Jar)部署到 Azure 应用服务

How to deploy a Spring Boot (Executable Jar) to Azure App Service

问题是目前 Azure 支持将 WAR 文件部署到 Tomcat。 Spring Boot 确实支持通过 WAR 进行部署,但这抵消了使用 Spring Boot 的一些好处。

第一个问题是您需要一种方法来向服务传达您正在尝试的内容 运行。这可以通过将 web.config 添加到应用程序服务的 site\wwwroot 文件夹来处理。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
        </handlers>
        <httpPlatform processPath="%JAVA_HOME%\bin\java.exe"
        arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot;%HOME%\site\wwwroot\@project.artifactId@-@project.version@.jar&quot;">
        </httpPlatform>
    </system.webServer>
</configuration>

为了让 web.config 远离 src 我更喜欢将它放在 {project root}/wwwroot

使用 Maven,您可以添加以下内容并在包中动态包含一个项目/发布。

    <build>
        <resources>
            <resource>
                <directory>${project.basedir}/wwwroot</directory>
                <filtering>true</filtering>
                <targetPath>${basedir}/target</targetPath>
            </resource>
        </resources>
    </build> 

现在将 jar 文件和 web.config 放在 Azure 应用服务中。

如果您使用的是 VSTS,则需要 3 个任务

任务 1:停止 Azure 应用程序

任务 2:FTP 或 SSH 将 jarweb.config 上传到应用程序服务

任务 3:启动应用服务。

在 wwwroot 文件夹下添加 web.config,在 web.config 中输入您的 jar 名称。完成后,将所需的 jar 上传到同一文件夹。要通过 FTP 上传它,您需要先在 Azure

中 AppService 下的凭据 blade 下设置凭据