Java 应用部署示例
在此单元中,你将通过 Maven 配置要部署的 Spring Boot 应用程序。 然后,你会将此应用程序部署到 Azure 应用服务实例。 此单元将 pet clinic 作为示例。
示例应用程序
在你最喜欢的命令行工具中进行克隆。
git clone https://github.com/spring-projects/spring-petclinic.git
然后在本地运行它。
cd spring-petclinic
./mvnw package
java -jar target/*.jar
在浏览器中打开示例时,该示例应如下所示:
为将示例应用程序部署到云端做好准备
在 src 文件夹中,你将找到 Object、Controller 和 Repository 类。
由于 Java 独立于平台,因此你可以自由选择 OS,但 Java 版本对于部署非常重要。 可在 pom.xml 文件中找到该 Java 版本。
<properties>
<java.version>17</java.version>
</properties>
该示例使用 Java 8,因此 Azure 应用服务实例(不管是 Linux 还是 Windows)也应该用 Java 8。 由于选择哪种平台并不重要,所以我们在该示例中使用 Linux。
我们必须向 pom.xml 文件添加一些 Azure 依赖项。 如果你运行下面的命令,则添加依赖项操作可以自动执行:
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.1:config
需要指定一些选项,以便于该命令进行输出。 这些选项将自动存储在我们的 pom.xml 中。
Please choose which part to config:
* 1: Application
2: Runtime
3: DeploymentSlot
Enter your choice: 1
Define value for appName [spring-petclinic-XXXX200]:
Define value for resourceGroup [spring-petclinic-XXXX200-rg]:
Define value for region [westeurope]:
Define value for pricingTier(P1v2):
1: b1
2: b2
3: b3
4: d1
5: f1
* 6: p1v2
7: p2v2
8: p3v2
9: s1
10: s2
11: s3
Enter your choice: 1
Please confirm webapp properties
AppName : spring-petclinic-XXXX200
ResourceGroup : spring-petclinic-XXXX200-rg
Region : westeurope
PricingTier : Basic_B2
OS : Linux
RuntimeStack : JAVA 8-jre8
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
如你所见,可以使用默认值进行简单部署。
pom.xml 文件现在添加了基于 Maven 自动部署到 Azure 所需的插件。
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>2.11.1</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<subscriptionId>XXX-XXX-XXX</subscriptionId>
<resourceGroup>spring-petclinic-XXX200-rg</resourceGroup>
<appName>spring-petclinic-XXX200</appName>
<pricingTier>B2</pricingTier>
<region>westeurope</region>
<runtime>
<os>linux</os>
<javaVersion>jre8</javaVersion>
<webContainer>jre8</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
使用 Maven 部署应用程序
我们已经为部署到 Azure 应用服务做好了准备。
mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy
此命令将运行测试。 然后,它会自动启动一个 Azure 应用服务实例并部署已打包的应用程序。
祝贺你! 已成功将该应用部署到 Azure 应用服务。