Začínáme s Azure SDK a Mavenem

V tomto článku se dozvíte, jak pomocí Apache Mavenu vytvářet aplikace pomocí sady Azure SDK pro Javu. V tomto článku nastavíte nový projekt s Mavenem, sestavíte projekty s Mavenem a použijete nástroje nativní bitové kopie GraalVM k vytvoření nativních binárních souborů specifických pro platformu.

Projekt Azure SDK pro Javu obsahuje archetyp Mavenu, který může urychlit spouštění nového projektu. Archetyp Azure SDK pro Javu Maven vytvoří novou aplikaci se soubory a adresářovou strukturou, která se řídí osvědčenými postupy. Konkrétně archetyp Azure SDK pro Javu Maven vytvoří nový projekt Maven s následujícími funkcemi:

  • Závislost na nejnovějším vydání kusovníku azure-sdk-bom, která zajišťuje, že jsou všechny závislosti pro sadu Azure SDK pro Javu sladěné, a nabízí nejlepší možný zážitek pro vývojáře.
  • Integrovaná podpora kompilace nativních imagí GraalVM
  • Podpora generování nového projektu se zadanou sadou klientských knihoven Azure SDK pro Javu
  • Integrace s nástroji pro sestavení Azure SDK pro Javu, které poskytují analýzu projektu v době sestavení, aby bylo zajištěno dodržování mnoha osvědčených postupů.

Požadavky

Vytvoření nového projektu Maven

Azure SDK pro Java archetyp Mavenu je k dispozici na Maven Central. Archetype můžete použít přímo ke spuštění nové aplikace spuštěním následujícího příkazu:

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

Po zadání tohoto příkazu se řada výzev zeptá na podrobnosti o projektu, aby archetyp mohl vygenerovat správný výstup za vás. Následující tabulka popisuje vlastnosti, pro které potřebujete zadat hodnoty:

Jméno Popis
groupId (Povinné) Maven groupId použít v souboru POM vytvořeném pro vygenerovaný projekt.
artifactId (Povinné) Maven artifactId použít v souboru POM vytvořeném pro vygenerovaný projekt.
package (Volitelné) Název balíčku pro vložení vygenerovaného kódu. Odvozeno z groupId, pokud není zadané.
azureLibraries (Volitelné) Seznam knihoven Azure SDK pro Java, oddělených čárkami, pomocí jejich ID artefaktů Mavenu. Seznam takových ID artefaktů najdete v dokumentu Azure SDK vydaných verzí.
enableGraalVM (Volitelné) false k označení, že vygenerovaný soubor Maven POM by neměl zahrnovat podporu kompilace aplikace do nativní bitové kopie pomocí GraalVM; jinak true. Výchozí hodnota je true.
javaVersion (Volitelné) Minimální verze sady JDK, která se má cílit při vytváření vygenerovaného projektu, například 8, 11nebo 17. Výchozí hodnota je nejnovější verze LTS (aktuálně 17). Minimální hodnota je 8.
junitVersion (Volitelné) Verze JUnit, která se má zahrnout jako závislost. Výchozí hodnota je 5. Platné hodnoty jsou 4 a 5.

Alternativně můžete tyto hodnoty zadat při volání příkazu archetype zobrazeného dříve. Tento přístup je užitečný například pro účely automatizace. Hodnoty můžete zadat jako parametry pomocí standardní syntaxe Mavenu pro připojení -D k názvu parametru, například:

-DjavaVersion=17

Podpora verzí Javy

Osvědčeným postupem je použití verze Java LTS při nasazování do produkčního prostředí. Ve výchozím nastavení archetyp Azure SDK Maven vybere nejnovější verzi LTS, která aktuálně nastavuje směrný plán Javy 17. Výchozí chování ale můžete přepsat nastavením parametru javaVersion.

Použijte nástroj pro sestavování Azure SDK pro Javu

Azure SDK pro Java projekt obsahuje nástroj pro sestavení Maven, který můžete přidat do svých projektů. Tento nástroj běží místně a neodesílá žádná data do Microsoft. Nástroj můžete nakonfigurovat tak, aby při splnění určitých podmínek vygeneroval sestavu nebo aby se sestavení nezdařilo. Tato funkce pomáhá zajistit dodržování osvědčených postupů, například následující postupy:

  • Ověření správného použití azure-sdk-for-java BOM, včetně použití nejnovější verze, a spoléhání na něj pro definování verzí závislostí v Azure SDK pro Java klientské knihovny. Další informace najdete v oddílu Přidání sady Azure SDK pro Javu do existujícího projektu.
  • Ověření, že historické Azure klientské knihovny se nepoužívají, pokud existují novější a vylepšené verze.

Zpráva také poskytuje přehled o využití beta rozhraní API.

Nástroj sestavení můžete nakonfigurovat v souboru Maven POM projektu, jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit zástupný symbol {latest_version} nejnovější verzí uvedenou online.

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

Po přidání nástroje sestavení do projektu Maven spusťte nástroj voláním mvn compile azure:run. V závislosti na konfiguraci, kterou zadáte, můžete očekávat selhání sestavení nebo vygenerování souborů s hlášeními, které vás mohou upozornit na potenciální problémy dříve, než přerostou ve vážnější. Spusťte tento nástroj jako součást CI/CD pipeline. S vývojem nástroje pro sestavení publikuje vývojový tým nové verze. Podle potřeby často kontrolujte nové verze a aktualizujte je.

Nástroj pro sestavení můžete nakonfigurovat tak, aby povolil nebo zakázal konkrétní funkce. Pro tuto konfiguraci přidejte oddíl configuration v dříve zobrazeném kódu XML. V této části nakonfigurujte nastavení uvedená v následující tabulce. Jakákoli konfigurace, která není explicitně zmíněna, přebírá výchozí hodnotu zadanou v tabulce.

Název vlastnosti Výchozí hodnota Popis
validateAzureSdkBomUsed pravda Zajišťuje, aby projekt správně odkazoval na azure-sdk-for-java BOM, takže závislosti klientských knihoven Azure SDK for Java přebírají své verze z BOM.
validateLatestBomVersionUsed pravda Zajišťuje, aby závislosti zůstávaly aktuální, tím, že upozorní (nebo nechá build selhat), pokud existuje novější azure-sdk-for-java BOM. Vždy najdete nejnovější verzi online.
validateBomVersionsAreUsed pravda Zajišťuje, že pokud je závislost k dispozici v azure-sdk-for-java BOM, verze není ručně přepisována.
validateNoDeprecatedMicrosoftLibraryUsed pravda Zajišťuje, že projekt nepoužívá knihovny Azure předchozí generace. Použití nových a předchozích knihoven v jednom projektu pravděpodobně nezpůsobuje žádný problém, ale výsledkem je neoptimální vývojářské prostředí.
validateNoBetaLibraryUsed falešný Některé klientské knihovny Azure SDK pro Javu mají beta verze s řetězci verzí ve formuláři x.y.z-beta.n. Povolením této funkce zajistíte, že se nepoužívají žádné beta knihovny.
validateNoBetaApiUsed pravda Klientské knihovny Azure SDK pro Javu někdy obsahují verze GA s metodami, které jsou označeny @Beta. Tato kontrola zjistí, jestli se používají nějaké takové metody.
sendToMicrosoft pravda Určuje, jestli se má sestava sestavení posílat Microsoftu pro účely telemetrie. Tato zpráva pomáhá vývojovému týmu určit, na co se má přednostně zaměřit při tvorbě dokumentace, ukázek a vylepšování rozhraní API pro snazší používání. Nebyl odeslán žádný identifikovatelný obsah uživatele.
reportFile - (Volitelné) Určuje umístění pro zápis sestavy sestavení do formátu JSON. Pokud není specifikována žádná sestava, sestava se nezapíše a v terminálu se zobrazí souhrn sestavení nebo příslušná selhání sestavení.

Přidání sady Azure SDK pro Javu do existujícího projektu

Pro zjednodušení správy verzí závislostí vydává tým Azure SDK pro Javu každý měsíc klientský BOM sady Azure SDK pro Javu. Tento soubor BOM obsahuje všechny obecně dostupné Azure SDK pro balíčky klienta Java s jejich kompatibilními verzemi závislostí.

Chcete-li použít verze závislostí pro klientskou knihovnu Azure SDK pro Javu uvedenou v BOM, přidejte do souboru pom.xml projektu následující úryvek. Zástupný symbol {bom_version_to_target} nahraďte nejnovější verzí Azure SDK sady BOM pro Javu. Zástupný symbol {artifactId} nahraďte názvem balíčku sady SDK služby Azure.

<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>

Veškeré vydání klientského BOM Azure SDK pro Javu najdete na azure-sdk-bom. Využijte nejnovější verzi a využijte nejnovější funkce Azure SDK pro klientské knihovny Java.

Použití Mavenu k definování závislostí projektu může zjednodušit správu projektů. Pomocí Azure SDK BOM a archetypu Azure SDK Maven můžete urychlit vývoj projektu a zároveň mít z dlouhodobého hlediska větší jistotu, pokud jde o verzování závislostí. Pomocí BOM udržíte závislosti sladěné a aktuální.

Kromě přidání Azure SDK BOM zahrňte také nástroj pro sestavení Azure SDK pro Javu. Tento nástroj pomáhá diagnostikovat mnoho problémů, ke kterým běžně dochází při vytváření aplikací, jak je popsáno výše v tomto článku.

Zahrnout balíček, který není součástí kusovníku

Azure SDK pro Java – klientský BOM zahrnuje pouze knihovny v obecné dostupnosti (GA). Pokud chcete použít jako závislost balíček, který je stále ve fázi beta, nebo verzi knihovny odlišnou od té, která je zahrnuta v BOM, zadejte v části závislostí verzi závislosti Maven spolu s groupId a artifactId. Můžete se rozhodnout mít v souboru POM projektu závislosti, které používají BOM verze, a závislosti s přepsanými verzemi, jak je znázorněno v následujícím příkladu:

<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>

Pokud použijete tento přístup a zadáte verze přímo v projektu, může dojít ke konfliktům verzí závislostí. K těmto konfliktům dochází, protože různé balíčky můžou záviset na různých verzích běžných závislostí a tyto verze nemusí být vzájemně kompatibilní. Když dojde ke konfliktům, můžete zaznamenat nežádoucí chování v době kompilace nebo za běhu. Spoléhejte na verze uvedené v Azure SDK BOM, pokud to není nutné jinak. Další informace o řešení závislostí při použití sady Azure SDK pro Javu najdete v tématu Řešení konfliktů verzí závislostí.

Vytvoření nativní image pomocí GraalVM

GraalVM můžete použít k vytvoření nativní image aplikace v Javě. GraalVM předem zkompiluje kód Java do nativního strojového kódu, což může v určitých situacích přinést výrazné zvýšení výkonu. Sada Azure SDK pro Javu poskytuje potřebná metadata v každé z jejích klientských knihoven pro podporu kompilace nativních imagí GraalVM.

Začněte tím, že nainstalujete GraalVM a připravíte vývojový systém na kompilaci nativních imagí. Proces instalace pro GraalVM je jednoduchý a dokumentace k GraalVM obsahuje podrobné pokyny pro instalaci GraalVM a pomocí GraalVM k instalaci nativní image. Postupujte pečlivě podle požadavků části k nainstalování potřebných nativních kompilátorů pro váš operační systém.

Archetyp Azure SDK pro Java Maven může nakonfigurovat sestavení pro podporu kompilace nativních image GraalVM, ale můžete ho také přidat do existujícího sestavení Maven. Pokyny pro Maven najdete na webu GraalVM.

Dále jste připraveni spustit sestavení nativní bitové kopie. Standardní nástroje Maven můžete použít k použití nativní image GraalVM. Pro Maven použijte následující příkaz:

mvn clean package -Pnative

Po spuštění tohoto příkazu GraalVM vypíše nativní spustitelný soubor pro platformu, na které běží. Spustitelný soubor se zobrazí v adresáři maven /target projektu. Teď můžete spustit aplikaci s tímto spustitelným souborem a měla by fungovat podobně jako standardní aplikace v Javě.

Další kroky