Начало работы с пакетом SDK Azure и Apache Maven

В этой статье показано, как использовать Apache Maven для создания приложений с помощью пакета SDK Azure для Java. В этой статье вы настроили новый проект с помощью Maven, создайте проекты с помощью Maven и используйте собственные средства образов GraalVM для создания собственных двоичных файлов для конкретной платформы.

Проект Пакета SDK Azure для Java включает архетип Maven, который может ускорить загрузку нового проекта. Пакет SDK Azure для Java Maven архетип создает новое приложение с файлами и структурой каталогов, которая соответствует рекомендациям. В частности, архетип Пакета SDK Azure для Java Maven создает новый проект Maven со следующими функциями:

  • Зависимость от последней azure-sdk-bom версии BOM, которая гарантирует выравнивание всех зависимостей для пакета SDK Azure для Java и обеспечивает оптимальный интерфейс разработчика.
  • Встроенная поддержка компиляции собственных образов GraalVM.
  • Поддержка создания нового проекта с указанным набором azure SDK для клиентских библиотек Java.
  • Интеграция с инструментами сборки Пакета SDK azure для Java, которая обеспечивает анализ времени сборки проекта, чтобы обеспечить соблюдение множества рекомендаций.

Необходимые компоненты

  • Пакет разработчиков Java версии 8 или более поздней версии. Рекомендуется использовать версию 17 для лучшего взаимодействия.
  • Apache Maven

Создание нового проекта Maven

Azure SDK для Java Maven archetype публикуется в Maven Central. Это означает, что вы можете использовать архетип непосредственно для загрузки нового приложения с помощью следующей команды:

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

После ввода этой команды ряд запросов запрашивает подробные сведения о проекте, чтобы архетип может создать правильные выходные данные. В следующей таблице описываются свойства, которые необходимо указать для следующих значений:

Имя Описание
groupId (обязательно) Maven groupId , используемый в ФАЙЛЕ POM, созданном для созданного проекта.
artifactId (обязательно) Maven artifactId , используемый в ФАЙЛЕ POM, созданном для созданного проекта.
package (Необязательно) Имя пакета, в который нужно поместить созданный код. Выводится из groupId нее, если он не указан.
azureLibraries (Необязательно) Разделенный запятыми список библиотек Пакета SDK Azure для Java с помощью идентификаторов артефактов Maven. Список таких идентификаторов артефактов см. в разделе "Выпуски пакета SDK Azure".
enableGraalVM (Необязательно) Значение false , указывающее, что созданный POM-файл Maven не должен содержать поддержку компиляции приложения на собственный образ с помощью GraalVM; в противном случае — значение true. Значение по умолчанию — true
javaVersion (Необязательно) Минимальная версия JDK для целевого объекта при создании созданного проекта, например 8, 11 или 17. Значением по умолчанию является последний выпуск LTS (в настоящее время 17). Минимальное значение равно 8.
junitVersion (Необязательно) Версия JUnit, включаемая в качестве зависимости. Значение по умолчанию — 5. Допустимые значения 4 и 5.

Кроме того, эти значения можно указать при вызове команды архетипа, показанной ранее. Этот подход полезен, например, для целей автоматизации. Значения можно указать в качестве параметров с помощью стандартного синтаксиса Maven для добавления -D к имени параметра, например:

-DjavaVersion=17

Поддержка версий Java

Рекомендуется использовать выпуск Java LTS при развертывании в рабочей среде. По умолчанию архетип Azure SDK Maven выбирает последний выпуск LTS, который в настоящее время задает базовый план Java 17. Однако можно переопределить поведение по умолчанию, задав javaVersion параметр.

Использование средства сборки пакета SDK Azure для Java

Проект Пакета SDK Azure для Java предоставляет средство сборки Maven, которое можно включить в проекты. Это средство выполняется локально и не передает данные в корпорацию Майкрософт. Вы можете настроить средство для создания отчета или сбоя сборки при выполнении определенных условий, что полезно для обеспечения соответствия многочисленным рекомендациям, таким как следующие методики:

  • Проверка правильного использования BOM, включая использование последней azure-sdk-for-java версии и использование ее для определения версий зависимостей в клиентских библиотеках Azure SDK для Java. Дополнительные сведения см. в разделе "Добавление пакета SDK Azure для Java" в существующий раздел проекта .
  • Проверка того, что исторические клиентские библиотеки Azure не используются при наличии более новых и улучшенных версий.

В отчете также содержатся сведения об использовании бета-API.

Средство сборки можно настроить в файле POM проекта Maven, как показано в следующем примере. Обязательно замените {latest_version} заполнитель последней версией, указанной в Интернете.

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

После добавления средства сборки в проект Maven можно запустить средство, вызвав его mvn compile azure:run. В зависимости от предоставленной конфигурации можно ожидать, что будут отображаться сбои сборки или файлы отчетов, созданные, которые могут сообщить о потенциальных проблемах, прежде чем они становятся более серьезными. Мы рекомендуем запустить это средство в рамках конвейера CI/CD. По мере развития средства сборки мы публикуем новые выпуски и рекомендуем разработчикам часто проверка для новых выпусков и обновления соответствующим образом.

Можно настроить средство сборки для включения или отключения определенных функций. Для этой конфигурации добавьте configuration раздел в XML,показанном ранее. В этом разделе настройте параметры, показанные в следующей таблице. Любая конфигурация, которая явно не упоминание принимает значение по умолчанию, указанное в таблице.

Имя свойства Значение по умолчанию Description
validateAzureSdkBomUsed true Убедитесь, что проект имеет соответствующую ссылку на BOM azure-sdk-for-java, чтобы зависимости клиентской библиотеки Azure SDK для Java могли принимать их версии из BOM.
validateLatestBomVersionUsed true Гарантирует, что зависимости сохраняются в актуальном состоянии путем создания отчетов (или сбоя сборки), если существует более новая служба azure-sdk-for-java BOM . Вы всегда можете найти последнюю версию в Интернете.
validateBomVersionsAreUsed true Гарантирует, что, когда зависимость доступна из BOM azure-sdk-for-java, версия не переопределяется вручную.
validateNoDeprecatedMicrosoftLibraryUsed true Гарантирует, что проект не использует библиотеки Azure предыдущего поколения. Использование новых и предыдущих библиотек поколения в одном проекте вряд ли приведет к возникновению проблем, но приводит к неоптимальному интерфейсу разработчика.
validateNoBetaLibraryUsed false Некоторые клиентские библиотеки Пакета SDK Azure для Java имеют бета-версии с строками версий в форме x.y.z-beta.n. Включение этой функции гарантирует, что не используются бета-библиотеки.
validateNoBetaApiUsed true Клиентские библиотеки Пакета SDK Azure для Java иногда имеют выпуски общедоступной версии с помощью методов, аннотированных с @Betaпомощью . Этот проверка проверяет, используются ли такие методы.
sendToMicrosoft true Указывает, следует ли отправлять отчет сборки в корпорацию Майкрософт для целей телеметрии. Это поможет команде разработчиков определить, где определить приоритеты документации, примеров и улучшенных api-интерфейсов удобства. Содержимое, определяемое пользователем, не отправляется.
reportFile - (Необязательно) Указывает расположение для записи отчета сборки в формат JSON. Если отчет не указан, отчет не записывается, а сводка сборки или соответствующие сбои сборки отображаются в терминале.

Добавление пакета SDK Azure для Java в существующий проект

Чтобы упростить управление версиями зависимостей, команда Azure SDK для Java публикует пакет SDK Azure для клиента Java каждый месяц. Этот файл BOM включает все общедоступные пакеты Azure SDK для Java с совместимой версией зависимостей.

Чтобы использовать версии зависимостей для клиентской библиотеки Azure SDK для Java, которая находится в BOM, добавьте следующий фрагмент кода в файл project pom.xml . Замените {bom_version_to_target} заполнитель последним выпуском пакета SDK Azure для Java BOM. Замените {artifactId} заполнитель именем пакета SDK службы 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>

Все выпуски пакета SDK Azure для Java для клиента Java можно найти в azure-sdk-bom. Мы рекомендуем использовать последнюю версию, чтобы воспользоваться новейшими функциями клиентских библиотек пакета SDK Azure для Java.

С помощью Maven для определения зависимостей проекта можно упростить управление проектами. Благодаря архетипу BOM пакета SDK Azure и Azure SDK Maven вы можете ускорить проект, будучи более уверенным в версиях зависимостей в долгосрочной перспективе. Мы рекомендуем использовать BOM для поддержания соответствия зависимостей и актуальности.

Помимо добавления BOM пакета SDK Azure, мы рекомендуем также включить средство сборки Пакета SDK Azure для Java. Это средство помогает диагностировать многие проблемы, часто возникающие при создании приложений, как описано ранее в этой статье.

Включение пакета не в BOM

Пакет SDK Azure для клиента Java включает только библиотеки общедоступной версии. Если вы хотите зависеть от пакета, который по-прежнему находится в бета-версии или в версии библиотеки, отличной от версии библиотеки, включенной в BOM, можно указать версию зависимости Maven вместе с groupId разделом зависимостей и artifactId в разделе зависимостей. Можно выбрать зависимости, использующие версии BOM и зависимости с переопределенными версиями в том же файле POM проекта, как показано в следующем примере:

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

Если вы используете этот подход и задаете версии непосредственно в проекте, могут возникнуть конфликты версий зависимостей. Эти конфликты возникают, так как разные пакеты могут зависеть от разных версий распространенных зависимостей, и эти версии могут быть несовместимы друг с другом. При возникновении конфликтов можно столкнуться с нежелательным поведением во время компиляции или во время выполнения. Рекомендуется полагаться на версии, которые находятся в BOM пакета SDK Azure, если это не необходимо. Дополнительные сведения о работе с зависимостями при использовании пакета SDK Azure для Java см. в статье "Устранение неполадок конфликтов версий зависимостей".

Создание собственного образа с помощью GraalVM

Вы можете использовать GraalVM для создания собственного образа приложения Java. GraalVM компилирует код Java заранее в машинный код, что может повысить производительность в определенных ситуациях. Пакет SDK Azure для Java предоставляет необходимые метаданные в каждой из клиентских библиотек для поддержки компиляции собственных образов GraalVM.

Чтобы приступить к работе, необходимо установить GraalVM и подготовить систему разработки для компиляции собственных образов. Процесс установки для GraalVM прост, и документация по GraalVM содержит пошаговые инструкции по установке GraalVM и использованию GraalVM для установки собственного образа. Следуйте инструкциям в разделе предварительных требований, чтобы установить необходимые собственные компиляторы для операционной системы.

Пакет SDK Azure для Java Maven archetype может настроить сборку для поддержки компиляции собственных образов GraalVM, но вы также можете добавить его в существующую сборку Maven. Инструкции для Maven можно найти на веб-сайте GraalVM.

Затем вы готовы выполнить сборку собственного образа. Вы можете использовать стандартные средства Maven для использования собственного образа GraalVM. Для Maven используйте следующую команду:

mvn clean package -Pnative

После выполнения этой команды GraalVM выводит собственный исполняемый файл для платформы, на которой он работает. Исполняемый файл отображается в каталоге Maven /target проекта. Теперь вы можете запустить приложение с этим исполняемым файлом, и он должен выполняться аналогично стандартному приложению Java.

Следующие шаги