Distribuzione di un'app Java di esempio
In questa unità si configurerà un'applicazione Spring Boot per la distribuzione tramite Maven. L'applicazione verrà quindi distribuita in un'istanza di Servizio app di Azure. Questa unità usa l'esempio di una clinica veterinaria.
Applicazione di esempio
Eseguire la clonazione nello strumento da riga di comando preferito.
git clone https://github.com/spring-projects/spring-petclinic.git
Eseguirlo quindi in locale.
cd spring-petclinic
./mvnw package
java -jar target/*.jar
Quando si apre l'esempio nel browser, dovrebbe essere simile al seguente:
Preparare l'applicazione di esempio per il cloud
Nella cartella src sono presenti le classi object, controller e repository.
Poiché Java è indipendente dalla piattaforma, è possibile scegliere il sistema operativo, ma la versione Java è importante per la distribuzione. È possibile trovare la versione Java nel file pom.xml.
<properties>
<java.version>17</java.version>
</properties>
L'esempio usa Java 8, quindi anche l'istanza di Servizio app di Azure, sia Linux che Windows, deve quindi usare Java 8. Non essendo la piattaforma rilevante, per questo esempio si userà Linux.
È necessario aggiungere alcune dipendenze di Azure al file pom.xml. L'aggiunta delle dipendenze può avvenire automaticamente se si esegue il comando seguente:
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.1:config
Nell'output di questo comando viene richiesto di specificare alcune opzioni. Queste opzioni verranno archiviate automaticamente nel file 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
Come si può osservare, per una distribuzione semplice è possibile usare le impostazioni predefinite.
Nel file pom.xml è stato aggiunto il plug-in necessario per la distribuzione automatica in Azure basata su Maven.
<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>
Distribuire l'applicazione con Maven
La distribuzione in Servizio app di Azure è pronta.
mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy
Questo comando esegue i test. Crea quindi automaticamente un'istanza di Servizio app di Azure e distribuisce l'applicazione in pacchetto.
Complimenti. L'app è stata distribuita correttamente in Servizio app di Azure.