Настройка плагина сборки Axelix

При использовании плагина Axelix для сборки координаты сборки записываются в артефакт, чтобы Axelix Master мог идентифицировать экземпляр.

Подключение плагина сборки Axelix — это вторая половина того, что делает сервис видимым для Axelix Master; первая половина — подключение стартера. У плагина нечего настраивать: вы его подключаете, и он записывает координаты сборки в артефакт, чтобы Master мог идентифицировать сервис. См. Что такое плагин сборки Axelix?, чтобы узнать, что он создаёт и почему он обязателен.

Обязателен для регистрации

Master идентифицирует каждое приложение по его groupId + artifactId. Без плагина файл META-INF/axelix-info.properties отсутствует, координаты пусты, и Master отклоняет регистрацию — сервис так и не появится в UI. Эти же координаты используются как ключ для инсайтов по персистентности (анализ N+1 и маппинга сущностей). Подключайте плагин к каждому сервису, которым вы хотите управлять через Axelix.

На данный момент плагины публикуются только в Maven Central. Публикация в Gradle Plugin Portal запланирована; до тех пор сборки на Gradle должны получать плагин из Maven Central (см. блок pluginManagement ниже). Держите версию плагина в соответствии с версией стартера.

Подключите плагин

Поскольку плагина пока нет в Gradle Plugin Portal, добавьте mavenCentral() в pluginManagement в вашем settings.gradle.kts:

settings.gradle.kts
pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenCentral()
    }
}

Затем подключите плагин в build.gradle.kts:

build.gradle.kts
plugins {
    id("com.axelixlabs.axelix") version "1.1.1"
}

Ни один из плагинов не имеет параметров конфигурации. Gradle-плагину нужно лишь, чтобы были заданы стандартные group и version проекта (он завершает сборку с ошибкой, если group пуст, поскольку Axelix использует его, чтобы различать приложения); в Maven координаты GAV есть всегда, поэтому ничего дополнительно настраивать не нужно.

Необязательная координата group

ОжидаетсяПоявится в ближайшем минорном релизе

Раннее Axelix требовал, чтобы у всех управляемых им Java-приложений был указан groupId (часть G в координатах GAV). Но начиная с релиза 1.2.0 это больше не так.

Строго говоря, каждое упакованное и развёрнутое Java-приложение должно представлять собой Maven-артефактом. Однако бывают случаи, когда приложение на самом деле не предполагается публиковать в Maven-совместимый репозиторий бинарных артефактов. Так может быть, например, если приложение просто собирается «на лету» в Docker-образ и разворачивается в кластере K8S.

В таком случае Java-приложение по сути не обязано быть полноценным Maven-артефактом (поскольку технически оно никуда не публикуется), и в частности, ему не обязательно иметь groupId. Именно поэтому Gradle позволяет Java-приложениям, которые не предполагается публиковать как Maven-артефакты, опускать groupId.

Благодаря этому Axelix теперь умеет работать с проектами без groupId, когда он не задан. В этом случае Axelix просто считает, что у таких приложений пустой groupId (т.е. ""). Как следствие, если в вашей организации вы не используете groupId для своих Java-микросервисов, то вы должны гарантировать, что имена ваших микросервисов (т.е. атрибут name в ваших файлах build.gradle.kts, который преобразуется в artifactId) уникальны. Если же вы не будете этого гарантировать, то поведение Axelix Master по отношению к вашим сервисам будет неопределенно.

См. также

На этой странице