Kom igång med Azure SDKs och Maven

Den här artikeln visar hur du använder Apache Maven för att skapa program med Azure SDKs för Java. I den här artikeln konfigurerar du ett nytt projekt med Maven, skapar projekt med Maven och använder graalVM-avbildningsverktyget för att skapa plattformsspecifika interna binärfiler.

Azure SDKs för Java-projektet innehåller en Maven-arketyp som kan påskynda start av ett nytt projekt. Azure SDKs för Java Maven-arketypen skapar ett nytt program med filer och en katalogstruktur som följer bästa praxis. I synnerhet skapar Azure SDKs för Java Maven-arketypen ett nytt Maven-projekt med följande funktioner:

  • Ett beroende av den senaste azure-sdk-bom BOM-versionen, som säkerställer att alla beroenden för Azure SDKs för Java är anpassade och ger dig bästa möjliga utvecklarupplevelse.
  • Inbyggt stöd för GraalVM-intern bildkompilering.
  • Stöd för att generera ett nytt projekt med en angiven uppsättning Azure SDKs för Java-klientbibliotek.
  • Integrering med Azure SDKs för Java-byggverktyg, vilket ger byggtidsanalys av projektet för att säkerställa att många metodtips följs.

Förutsättningar

Skapa ett nytt Maven-projekt

Den Azure SDKs för Java Maven arketyp finns på Maven Central. Du kan använda arketypen direkt för att starta ett nytt program genom att köra följande kommando:

mvn archetype:generate \
    -DarchetypeGroupId=com.azure.tools \
    -DarchetypeArtifactId=azure-sdk-archetype

När du har angett det här kommandot ber en serie frågor om information om projektet så att arketypen kan generera rätt utdata åt dig. I följande tabell beskrivs de egenskaper som du behöver ange värden för:

Namn Beskrivning
groupId (Krävs) Maven-groupId som ska användas i POM-filen som skapats för det genererade projektet.
artifactId (Krävs) Maven-artifactId som ska användas i POM-filen som skapats för det genererade projektet.
package (Valfritt) Paketnamnet som den genererade koden ska placeras i. Härleds från groupId om den inte har angetts.
azureLibraries (Valfritt) En kommaavgränsad lista över Azure SDKs för Java-bibliotek med hjälp av deras Maven-artefakt-ID:n. En lista över sådana artefakt-ID:n finns i Azure SDKs-versioner.
enableGraalVM (Valfritt) false för att indikera att den genererade Maven POM-filen inte bör innehålla stöd för att kompilera ditt program till en intern avbildning med GraalVM; annars true. Standardvärdet är true.
javaVersion (Valfritt) Den lägsta versionen av JDK som ska användas när det genererade projektet byggs, till exempel 8, 11eller 17. Standardvärdet är den senaste LTS-versionen (för närvarande 17). Minimivärdet är 8.
junitVersion (Valfritt) Den version av JUnit som ska inkluderas som ett beroende. Standardvärdet är 5. Giltiga värden är 4 och 5.

Du kan också ange dessa värden när du anropar arketypkommandot som visades tidigare. Den här metoden är till exempel användbar i automatiseringssyfte. Du kan ange värdena som parametrar genom att använda maven-standardsyntaxen för att lägga -D till parameternamnet, till exempel:

-DjavaVersion=17

Stöd för Java-version

Vi rekommenderar att du använder en Java LTS-version när du distribuerar till produktion. Som standard väljer Azure SDKs Maven-arketypen den senaste LTS-versionen, som för närvarande anger en Java 17-baslinje. Du kan dock åsidosätta standardbeteendet genom att ange parametern javaVersion.

Använda Azure SDKs för Java-kompileringsverktyget

Azure SDKs för Java-projektet innehåller ett Maven-byggverktyg som du kan lägga till i dina projekt. Det här verktyget körs lokalt och skickar inga data till Microsoft. Du kan konfigurera verktyget för att generera en rapport eller misslyckas med bygget när vissa villkor uppfylls. Den här funktionen hjälper till att säkerställa efterlevnad av bästa praxis, till exempel följande metoder:

  • Validering av korrekt användning av azure-sdk-for-java BOM, inklusive användning av den senaste versionen och förlitande på den för att definiera beroendeversioner på Azure SDKs för Java-klientbibliotek. Mer information finns i avsnittet Lägg till Azure SDKs för Java i ett befintligt projekt.
  • Validering av att historiska Azure klientbibliotek inte används när det finns nyare och förbättrade versioner.

Rapporten ger också insikt i användningen av beta-API:er.

Du kan konfigurera byggverktyget i en Maven POM-projektfil enligt följande exempel. Se till att ersätta platshållaren för {latest_version} med den senaste versionen som finns listad online.

<build>
  <plugins>
    <plugin>
      <groupId>com.azure.tools</groupId>
      <artifactId>azure-sdk-build-tool</artifactId>
      <version>{latest_version}</version>
    </plugin>
  </plugins>
</build>

När du har lagt till byggverktyget i ett Maven-projekt kör du verktyget genom att anropa mvn compile azure:run. Beroende på vilken konfiguration du anger kan du förvänta dig att se byggfel eller att rapportfiler genereras som kan ge information om potentiella problem innan de utvecklas till allvarligare problem. Kör det här verktyget som en del av CI/CD-pipelinen. När byggverktyget utvecklas publicerar utvecklingsteamet nya versioner. Sök ofta efter nya versioner och uppdatera efter behov.

Du kan konfigurera byggverktyget för att aktivera eller inaktivera vissa funktioner. För den här konfigurationen lägger du till ett configuration-segment i den tidigare visade XML. I det avsnittet konfigurerar du inställningarna som visas i följande tabell. Alla konfigurationer som inte uttryckligen nämns tar det standardvärde som anges i tabellen.

Egenskapsnamn Standardvärde Beskrivning
validateAzureSdkBomUsed sann Säkerställer att projektet refererar korrekt till azure-sdk-for-java BOM, så att beroenden för Azure SDKs för Java-klientbibliotek får sina versioner från BOM.
validateLatestBomVersionUsed sann Säkerställer att beroenden hålls uppdaterade genom att rapportera eller låta bygget misslyckas om en nyare azure-sdk-for-java BOM finns. Du hittar alltid den senaste versionen online.
validateBomVersionsAreUsed sann Säkerställer att versionen inte åsidosätts manuellt om ett beroende finns i BOM:en för azure-sdk-for-java.
validateNoDeprecatedMicrosoftLibraryUsed sann Säkerställer att projektet inte använder föregående generations Azure bibliotek. Att använda de nya biblioteken och tidigare generationens bibliotek i ett enda projekt kommer sannolikt inte att orsaka några problem, men resulterar i en suboptimal utvecklarupplevelse.
validateNoBetaLibraryUsed falsk Vissa Azure SDKs för Java-klientbibliotek har betaversioner, med versionssträngar i formatet x.y.z-beta.n. Om du aktiverar den här funktionen ser du till att inga betabibliotek används.
validateNoBetaApiUsed sann Azure SDKs för Java-klientbibliotek har ibland GA-versioner med metoder som kommenterats med @Beta. Den här kontrollen ser ut att se om sådana metoder används.
sendToMicrosoft sann Anger om byggrapporten ska skickas till Microsoft i telemetrisyfte. Den här rapporten hjälper utvecklingsteamet att prioritera dokumentation, exempel och förbättrade API:er för bekvämlighet. Inget användar identifierbart innehåll skickas.
reportFile - (Valfritt) Anger den plats som byggrapporten ska skrivas ut till i JSON-format. Om den inte anges skrivs ingen rapport, och en sammanfattning av bygget, eller lämpliga byggfel, visas i terminalen.

Lägga till Azure SDKs för Java i ett befintligt projekt

För att förenkla hanteringen av beroendeversioner publicerar Azure SDKs för Java-teamet Azure SDKs för Java-klient-BOM:en varje månad. Den här BOM-filen innehåller alla allmänt tillgängliga (GA) Azure SDKs för Java klientpaket med deras kompatibla beroendeversioner.

Om du vill använda beroendeversioner för en Azure SDKs för Java klientbibliotek som bommen listar lägger du till följande kodfragment i projektets pom.xml-fil. Ersätt platshållaren {bom_version_to_target} med den senaste versionen av Azure SDKs för Java BOM. Ersätt platshållaren {artifactId} med Azure Service SDK-paketnamnet.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-sdk-bom</artifactId>
      <version>{bom_version_to_target}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>{artifactId}</artifactId>
  </dependency>
</dependencies>

Du hittar alla versioner av Azure SDKs för Java BOM på azure-sdk-bom. Använd den senaste versionen för att dra nytta av de senaste funktionerna i Azure SDKs för Java klientbibliotek.

Att använda Maven för att definiera projektberoenden kan göra det enklare att hantera dina projekt. Genom att använda Azure SDKs BOM och Azure SDKs Maven-arketyp kan du påskynda projektet samtidigt som du är mer säker på dina beroendeversioner på lång sikt. Använd BOM för att hålla beroenden samordnade och uppdaterade.

Förutom att lägga till Azure SDKs BOM inkluderar du även Azure SDKs för Java build-verktyget. Det här verktyget hjälper dig att diagnostisera många problem som ofta uppstår när du skapar program, enligt beskrivningen tidigare i den här artikeln.

Inkludera ett paket som inte finns i strukturlistan

Azure SDKs BOM för Java-klienter innehåller endast bibliotek som är allmänt tillgängliga (GA). Om du vill vara beroende av ett paket som fortfarande är i betaversion eller på en annan biblioteksversion än den som ingår i strukturlistan anger du Maven-beroendeversionen tillsammans med groupId och artifactId i beroendeavsnittet. Du kan välja att ha beroenden som använder BOM-versioner och beroenden med åsidosatta versioner i samma PROJEKT POM-fil, som du ser i följande exempel:

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-messaging-eventhubs</artifactId> <!-- Use the dependency version that is in the BOM -->
  </dependency>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-messaging-servicebus</artifactId>
    <version>7.4.0</version> <!-- Override the Service Bus dependency version specified in the BOM -->
  </dependency>
</dependencies>

Om du använder den här metoden och anger versioner direkt i projektet kan du få konflikter i beroendeversioner. Dessa konflikter uppstår eftersom olika paket kan vara beroende av olika versioner av vanliga beroenden och dessa versioner kanske inte är kompatibla med varandra. När konflikter uppstår kan du uppleva oönskat beteende vid kompileringstillfälle eller vid körningstid. Använd versioner som ingår i Azure SDKs BOM om det inte är nödvändigt att använda andra. Mer information om hur du hanterar beroenden när du använder Azure SDKs för Java finns i Felsöka beroendeversionskonflikter.

Skapa en inbyggd bild med GraalVM

Du kan använda GraalVM för att skapa en intern avbildning av ett Java-program. GraalVM kompilerar Java-koden i förväg till inbyggd datorkod, vilket kan ge drastiska prestandavinster i vissa situationer. Azure SDKs för Java tillhandahåller nödvändiga metadata i vart och ett av sina klientbibliotek för att stödja GraalVM-intern bildkompilering.

För att komma igång, installera GraalVM och förbered ditt utvecklingssystem för kompilering av nativa avbildningar. Installationsprocessen för GraalVM är enkel och GraalVM-dokumentationen innehåller steg-för-steg-instruktioner för installation av GraalVM samt använda GraalVM för att installera native-image. Följ avsnittet förutsättningar noggrant för att installera nödvändiga interna kompilatorer för operativsystemet.

Azure SDKs för Java Maven-arketyp kan konfigurera din version för att stödja GraalVM-intern bildkompilering, men du kan också lägga till den i en befintlig Maven-version. Du hittar anvisningar för Maven på GraalVM-webbplatsen.

Nu är du redo att köra en inbyggd avbildningsversion. Du kan använda Maven-standardverktyg för att använda graalVM-inbyggda avbildningar. Använd följande kommando för Maven:

mvn clean package -Pnative

När du har kört det här kommandot matar GraalVM ut en intern körbar fil för den plattform som den körs på. Den körbara filen finns i katalogen Maven /target i ditt projekt. Nu kan du köra ditt program med den här körbara filen och den bör fungera på samma sätt som ett Java-standardprogram.

Nästa steg