Dela via


Kom igång med Azure SDK och Apache Maven

Den här artikeln visar hur du använder Apache Maven för att skapa program med Azure SDK 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 SDK för Java-projektet innehåller en Maven-arketyp som kan påskynda start av ett nytt projekt. Azure SDK för Java Maven-arketypen skapar ett nytt program med filer och en katalogstruktur som följer bästa praxis. I synnerhet skapar Azure SDK 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 SDK 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 SDK för Java-klientbibliotek.
  • Integrering med Azure SDK 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

Azure SDK för Java Maven-arketypen publiceras till Maven Central. Det innebär att du kan använda arketypen direkt för att starta ett nytt program med 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:

Name beskrivning
groupId (Krävs) Den Maven groupId som ska användas i POM-filen som skapats för det genererade projektet.
artifactId (Krävs) Den 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 SDK för Java-bibliotek med hjälp av deras Maven-artefakt-ID:n. En lista över sådana artefakt-ID:n finns i Azure SDK-versioner.
enableGraalVM (Valfritt) false för att indikera att den genererade Maven POM-filen inte ska innehålla stöd för kompilering av ditt program till en intern avbildning med GraalVM, annars sant. Standardvärdet är sant.
javaVersion (Valfritt) Den lägsta versionen av JDK:t som ska riktas när det genererade projektet skapas, till exempel 8, 11 eller 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 4 och 5.

Alternativt kan du 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 med 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 SDK 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 SDK för Java-kompileringsverktyget

Azure SDK för Java-projektet levererar ett Maven-byggverktyg som du kan inkludera i dina projekt. Det här verktyget körs lokalt och överför inga data till Microsoft. Du kan konfigurera verktyget för att generera en rapport eller misslyckas med bygget när vissa villkor uppfylls, vilket är användbart för att säkerställa efterlevnad av många metodtips, till exempel följande metoder:

  • Validering av korrekt användning av azure-sdk-for-java bommen, inklusive användning av den senaste versionen, och förlitar sig på den för att definiera beroendeversioner på Azure SDK för Java-klientbibliotek. Mer information finns i avsnittet Lägg till Azure SDK 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 {latest_version} platshållaren med den senaste versionen som visas 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 kan du köra verktyget genom att anropa mvn compile azure:run. Beroende på vilken konfiguration som tillhandahålls kan du förvänta dig att skapa fel eller rapportera filer som genereras som kan informera dig om potentiella problem innan de blir allvarligare. Vi rekommenderar att du kör det här verktyget som en del av din CI/CD-pipeline. När byggverktyget utvecklas publicerar vi nya versioner och rekommenderar att utvecklare ofta söker efter nya versioner och uppdaterar efter behov.

Det är möjligt att konfigurera byggverktyget för att aktivera eller inaktivera vissa funktioner. För den här konfigurationen lägger du till ett configuration avsnitt i DEN XML som visades tidigare. 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 true Ser till att projektet har den azure-sdk-for-java BOM som refereras på rätt sätt, så att Azure SDK för Java-klientbiblioteksberoenden kan ta sina versioner från bommen.
validateLatestBomVersionUsed true Säkerställer att beroenden hålls uppdaterade genom att rapportera tillbaka (eller misslyckas med bygget) om det finns en nyare bom för azure-sdk-for-java. Du hittar alltid den senaste versionen online.
validateBomVersionsAreUsed true Ser till att versionen inte åsidosätts manuellt när ett beroende är tillgängligt från bommen azure-sdk-for-java.
validateNoDeprecatedMicrosoftLibraryUsed true Säkerställer att projektet inte använder tidigare generationens Azure-bibliotek. Att använda de nya biblioteken och föregående generations bibliotek i ett enda projekt kommer sannolikt inte att orsaka något problem, men resulterar i en suboptimal utvecklarupplevelse.
validateNoBetaLibraryUsed falskt Vissa Azure SDK 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 true Azure SDK 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 true Anger om byggrapporten ska skickas till Microsoft i telemetrisyfte. Detta 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 SDK för Java i ett befintligt projekt

För att göra hantering av beroendeversion enklare publicerar Azure SDK för Java-teamet Azure SDK för Java-klientstrukturen varje månad. Den här BOM-filen innehåller alla Allmänt tillgängliga Azure SDK för Java-klientpaket med sin kompatibla beroendeversion.

Om du vill använda beroendeversioner för ett Azure SDK för Java-klientbibliotek som finns i bommen inkluderar du följande kodfragment i filen project pom.xml . {bom_version_to_target} Ersätt platshållaren med den senaste versionen av Azure SDK för Java BOM. {artifactId} Ersätt platshållaren 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 SDK för Java-klientstrukturen på azure-sdk-bom. Vi rekommenderar att du använder den senaste versionen för att dra nytta av de senaste funktionerna i Azure SDK för Java-klientbibliotek.

Att använda Maven för att definiera projektberoenden kan göra det enklare att hantera dina projekt. Med Azure SDK BOM och Azure SDK Maven-arketypen kan du påskynda projektet samtidigt som du är mer säker på din beroendeversion på lång sikt. Vi rekommenderar att du använder strukturlistan för att hålla beroenden justerade och uppdaterade.

Förutom att lägga till Azure SDK BOM rekommenderar vi även att du inkluderar Azure SDK för Java-byggverktyget. Det här verktyget hjälper till 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 SDK för Java-klientstrukturen innehåller endast allmänt tillgängliga bibliotek (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 kan du ange 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 kompileringstid eller körning. Vi rekommenderar att du förlitar dig på versioner som finns i Azure SDK BOM om det inte behövs. Mer information om hur du hanterar beroenden när du använder Azure SDK för Java finns i Felsöka beroendeversionskonflikter.

Skapa en intern avbildning 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 SDK 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 måste du installera GraalVM och förbereda utvecklingssystemet för kompilering av interna avbildningar. Installationsprocessen för GraalVM är enkel och GraalVM-dokumentationen innehåller stegvisa instruktioner för att installera GraalVM och använda GraalVM för att installera intern avbildning. Följ kraven noggrant för att installera nödvändiga interna kompilatorer för operativsystemet.

Azure SDK 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 instruktioner 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 visas i katalogen Maven /target i projektet. 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