Az Azure SDK és az Apache Maven használatának első lépései
Ez a cikk bemutatja, hogyan hozhat létre alkalmazásokat az Apache Maven használatával a Java-hoz készült Azure SDK-val. Ebben a cikkben beállít egy új projektet a Mavennel, projekteket készít a Mavennel, és a GraalVM natív képeszközzel platformspecifikus natív bináris fájlokat hoz létre.
Az Azure SDK for Java-projekt tartalmaz egy Maven-archetípust, amely felgyorsíthatja egy új projekt rendszerindítását. Az Azure SDK for Java Maven archetípus egy új alkalmazást hoz létre fájlokkal és az ajánlott eljárásokat követő címtárstruktúrával. Az Azure SDK for Java Maven archetípus különösen egy új Maven-projektet hoz létre a következő funkciókkal:
- A legújabb
azure-sdk-bom
BOM-kiadásra való függőséggel biztosítani lehet az Azure SDK for Java összes függőségének összhangját, így a lehető legjobb fejlesztői élményt nyújtja. - A GraalVM natív képfordítás beépített támogatása.
- Az Azure SDK for Java ügyfélkönyvtárak megadott készletével támogatott új projekt létrehozása.
- Integráció a Java-hoz készült Azure SDK buildelési eszközével, amely a projekt buildidejének elemzését teszi lehetővé, hogy számos ajánlott eljárás legyen követve.
Előfeltételek
- Java Developer Kit, 8-es vagy újabb verzió. A legjobb élmény érdekében a 17-es verziót javasoljuk.
- Apache Maven
Új Maven-projekt létrehozása
Az Azure SDK for Java Maven archetype a Maven Centralban van közzétéve. Ez azt jelenti, hogy az archetípussal közvetlenül elindíthat egy új alkalmazást a következő paranccsal:
mvn archetype:generate \
-DarchetypeGroupId=com.azure.tools \
-DarchetypeArtifactId=azure-sdk-archetype
Miután megadta ezt a parancsot, egy sor üzenet kéri a projekt részleteit, hogy az archetípus a megfelelő kimenetet hozza létre. Az alábbi táblázat azokat a tulajdonságokat ismerteti, amelyekhez értékeket kell megadnia:
Név | Leírás |
---|---|
groupId |
(Kötelező) A Maven groupId , amit a generált projekthez létrehozott POM-fájlban kell használni. |
artifactId |
(Kötelező) A Maven artifactId , amelyet a generált projekthez létrehozott POM-fájlban használnak. |
package |
(Nem kötelező) A létrehozott kód beírásához a csomag neve. Ha nincs megadva, akkor az groupId alapján következtethető. |
azureLibraries |
(Nem kötelező) Az Azure SDK for Java-könyvtárak vesszővel tagolt listája a Maven-artefakt azonosítóikkal. Az ilyen összetevők azonosítóinak listáját Azure SDK-kiadásokcímű témakörben találja. |
enableGraalVM |
(Nem kötelező) false annak jelzésére, hogy a létrehozott Maven POM-fájl nem tartalmazhat támogatást az alkalmazás natív képre történő fordításához a GraalVM használatával; ellenkező esetben true . Az alapértelmezett érték a true . |
javaVersion |
(Nem kötelező) A létrehozott projekt létrehozásakor megcélzott JDK minimális verziója, például 8 , 11 vagy 17 . Az alapértelmezett érték a legújabb LTS-kiadás (jelenleg 17 ). A minimális érték 8 . |
junitVersion |
(Nem kötelező) A JUnit függőségként való belefoglalásának verziója. Az alapértelmezett érték a 5 . Érvényes értékek 4 és 5 . |
Alternatív megoldásként ezeket az értékeket is megadhatja, amikor meghívja a korábban bemutatott archetípus-parancsot. Ez a megközelítés például automatizálási célokra hasznos. Az értékeket paraméterként is megadhatja a paraméternévhez -D
hozzáfűző szabványos Maven-szintaxissal, például:
-DjavaVersion=17
Java-verzió támogatása
Ajánlott eljárásként java LTS-kiadást kell használnia az éles környezetben való üzembe helyezéskor. Alapértelmezés szerint az Azure SDK Maven archetípus a legújabb LTS-kiadást választja ki, amely jelenleg egy Java 17 alapkonfigurációt állít be. Az alapértelmezett viselkedést azonban felülbírálhatja a javaVersion
paraméter beállításával.
Az Azure SDK for Java build eszköz használata
Az Azure SDK for Java projekt egy Maven-buildelési eszközt szállít, amelyet a projektekbe belefoglalhat. Ez az eszköz helyileg fut, és nem továbbít adatokat a Microsoftnak. Az eszközt úgy konfigurálhatja, hogy jelentést hozzon létre, vagy bizonyos feltételek teljesülése esetén meghiúsuljon a buildelés, ami hasznos lehet számos ajánlott eljárásnak, például az alábbi eljárásoknak való megfelelés biztosításához:
- A
azure-sdk-for-java
BOM helyes használatának ellenőrzése, a legújabb verzió használatával, amely alapján a függőségi verziókat definiálják az Azure SDK Java klienskönyvtárai számára. További információ: Azure SDK hozzáadása Java-hoz egy meglévő projekthez szakasz. - Annak ellenőrzése, hogy a korábbi Azure-ügyfélkódtárak nincsenek-e használatban újabb és továbbfejlesztett verziók esetén.
A jelentés betekintést nyújt a béta API-k használatába is.
A buildelési eszközt a projekt Maven POM-fájljában konfigurálhatja az alábbi példában látható módon. Mindenképpen cserélje le a {latest_version}
helyőrzőt az online elérhető legújabb verzióra.
<build>
<plugins>
<plugin>
<groupId>com.azure.tools</groupId>
<artifactId>azure-sdk-build-tool</artifactId>
<version>{latest_version}</version>
</plugin>
</plugins>
</build>
Miután hozzáadta a buildelési eszközt egy Maven-projekthez, futtathatja az eszközt mvn compile azure:run
meghívásával. A megadott konfigurációtól függően számíthat a létrehozási hibákra vagy a létrehozott jelentésfájlokra, amelyek a súlyosabb problémák előtt tájékoztatják Önt a lehetséges problémákról. Javasoljuk, hogy futtassa ezt az eszközt a CI/CD-folyamat részeként. A buildelési eszköz fejlődésével új kiadásokat teszünk közzé, és azt javasoljuk, hogy a fejlesztők rendszeresen keressék az új kiadásokat és frissítsenek.
A buildelési eszköz konfigurálható bizonyos funkciók engedélyezésére vagy letiltására. Ehhez a konfigurációhoz adjon hozzá egy configuration
szakaszt a korábban bemutatott XML-fájlban. Ezen a szakaszon belül konfigurálja az alábbi táblázatban látható beállításokat. A kifejezetten nem említett konfigurációk a táblában megadott alapértelmezett értéket veszi igénybe.
Tulajdonság neve | Alapértelmezett érték | Leírás |
---|---|---|
validateAzureSdkBomUsed |
igaz | Biztosítja, hogy a projekt megfelelően hivatkozzon a azure-sdk-for-java BOM-re, hogy az Azure SDK for Java klienstár-függőségek a BOM-ból vehessék át a verziójukat. |
validateLatestBomVersionUsed |
igaz | Biztosítja, hogy a függőségek naprakészek maradjanak azáltal, hogy jelentést készít (vagy meghiúsítja a buildet), amennyiben egy újabb azure-sdk-for-java BOM létezik. Mindig megtalálhatja a legújabb verziót online. |
validateBomVersionsAreUsed |
igaz | Biztosítja, hogy ha egy függőség elérhető a azure-sdk-for-java BOM-ból, a verziót ne bírálja felül manuálisan. |
validateNoDeprecatedMicrosoftLibraryUsed |
igaz | Biztosítja, hogy a projekt ne használja az előző generációs Azure-kódtárakat. Az új és az előző generációs kódtárak egyetlen projektben való használata valószínűleg nem okoz problémát, de az optimálisnál rosszabb fejlesztői élményt eredményez. |
validateNoBetaLibraryUsed |
téves | Egyes Azure SDK for Java-ügyfélkönyvtárak bétaverziós kiadásokkal rendelkeznek, amelyeket a x.y.z-beta.n formájú verziósztringek jeleznek. A funkció engedélyezése biztosítja, hogy a rendszer ne használ bétakódtárakat. |
validateNoBetaApiUsed |
igaz | Az Azure Java SDK ügyfélkönyvtárai néha általánosan elérhető (GA) kiadásokkal rendelkeznek, amelyekben a metódusok @Beta -val vannak jelölve. Ez az ellenőrzés ellenőrzi, hogy használ-e ilyen metódusokat. |
sendToMicrosoft |
igaz | Megadja, hogy a buildjelentést telemetria céljából küldje-e el a Microsoftnak. Ez segít a fejlesztői csapatnak abban, hogy hol rangsorolhatja a dokumentációt, a mintákat és a továbbfejlesztett kényelmi API-kat. A rendszer nem küld felhasználó-azonosításra alkalmas tartalmat. |
reportFile |
- | (Nem kötelező) Megadja a buildjelentés JSON formátumban való írásának helyét. Ha nincs megadva, a rendszer nem ír jelentést, és megjelenik a build összegzése vagy a megfelelő buildelési hibák a terminálban. |
Azure SDK for Java hozzáadása meglévő projekthez
A függőségi verziókezelés egyszerűbbé tétele érdekében az Azure SDK for Java csapata havonta közzéteszi a Azure SDK for Java-ügyfél BOM-. Ez a BOM-fájl tartalmazza az összes általánosan elérhető Azure SDK for Java-ügyfélcsomagot a kompatibilis függőségi verzióval.
Ha a BOM-ban található Azure SDK for Java ügyfélkódtár függőségi verzióit szeretné használni, a projekt pom.xml fájlban adja meg az alábbi kódrészletet. Cserélje le a {artifactId}
helyőrzőt az Azure Service SDK-csomag nevére.
<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>
Az Azure SDK for Java kliens BOM összes kiadását az azure-sdk-bomalatt találja. Javasoljuk, hogy használja a legújabb verziót az Azure SDK for Java ügyfélkódtárak legújabb funkcióinak kihasználásához.
Ha a Maven használatával definiálja a projektfüggőségeket, egyszerűbbé teheti a projektek kezelését. Az Azure SDK BOM és az Azure SDK Maven archetípusával felgyorsíthatja a projektet, miközben hosszabb távon magabiztosabban használhatja a függőségi verziószámozást. Javasoljuk a BOM használatát, hogy igazítsa és naprakészen tartsa a függőségeket.
Az Azure SDK BOM hozzáadása mellett javasoljuk az Azure SDK for Java buildelési eszköz használatát is. Ez az eszköz segít diagnosztizálni az alkalmazások létrehozásakor gyakran előforduló számos problémát, a cikkben korábban ismertetett módon.
Tegyél bele egy csomagot, ami nincs az anyagjegyzékben.
Az Azure SDK for Java ügyféloldali BOM csak általánosan elérhető (GA) kódtárakat tartalmaz. Ha egy még bétaverziós csomagtól vagy a BOM-ban szereplőtől eltérő kódtár-verziótól szeretne függeni, a függőségi szakaszban megadhatja a Maven függőségi verzióját, valamint a groupId
és a artifactId
. Dönthet úgy, hogy olyan függőségekkel rendelkezik, amelyek BOM-verziókat használnak, és olyan függőségekkel, amelyek felülírt verziókkal vannak ugyanabban a projekt POM-fájlban, ahogyan az alábbi példában látható:
<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>
Ha ezt a módszert használja, és közvetlenül a projektben adja meg a verziókat, előfordulhat, hogy függőségi verzióütközések lesznek. Ezek az ütközések azért merülnek fel, mert a különböző csomagok a közös függőségek különböző verzióitól függhetnek, és előfordulhat, hogy ezek a verziók nem kompatibilisek egymással. Ütközések esetén a fordítási időben vagy a futtatókörnyezetben nemkívánatos viselkedés tapasztalható. Javasoljuk, hogy szükség esetén az Azure SDK BOM-ban lévő verziókra támaszkodik. További információ a függőségek kezeléséről a Java Azure SDK használatakor: Függőségi verzióütközések elhárítása.
Natív rendszerkép létrehozása a GraalVM használatával
A GraalVM használatával létrehozhat egy Java-alkalmazás natív rendszerképét. A GraalVM előre lefordítja a Java-kódot natív gépi kódra, ami bizonyos helyzetekben drasztikus teljesítménynövekedést eredményezhet. Az Azure SDK for Java minden ügyfélkódtárában biztosítja a szükséges metaadatokat a GraalVM natív képfordításának támogatásához.
Az első lépésekhez telepítenie kell a GraalVM-et, és elő kell készítenie a fejlesztői rendszert natív képek összeállítására. A GraalVM telepítési folyamata egyszerű, és a GraalVM dokumentációja részletes útmutatás t nyújt a GraalVM és GraalVM használatával történő telepítéséhez a natív képtelepítéséhez. Kövesse az előfeltételeket szakaszt, hogy telepítse az operációs rendszerhez szükséges natív fordítókat.
Az Azure SDK for Java Maven archetípusa konfigurálhatja a buildet a GraalVM natív képfeldolgozásának támogatására, de hozzáadhatja egy meglévő Maven-buildhez is. A útmutatást a
Ezután készen áll egy natív képfájl build futtatására. A GraalVM natív rendszerképét a standard Maven-eszközök használatával használhatja. A Maven esetében használja a következő parancsot:
mvn clean package -Pnative
A parancs futtatása után a GraalVM natív végrehajtható fájlt ad ki ahhoz a platformhoz, amelyen fut. A végrehajtható fájl megjelenik a projekt Maven /target könyvtárában. Most már futtathatja az alkalmazást ezzel a végrehajtható fájllal, és a szokásos Java-alkalmazáshoz hasonlóan kell végrehajtania.