Перейти к содержимому

Зависимости Maven

Устанавливайте зависимости Maven командой elide install, в том числе для проектов, где есть только pom.xml, и настраивайте процессоры аннотаций в проекте Elide.

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

Elide разрешает зависимости Maven, объявленные в elide.pkl или в pom.xml.

elide install

Maven — экосистема по умолчанию. Группы, репозитории, учётные данные и параметры установки: Зависимости.

Проекты только с pom.xml

elide install -p .

Elide читает прямые зависимости POM, значения ${property} и собственный dependencyManagement. Родительские POM и импортированные BOM не объединяются; зависимость, версию которой задаёт только родитель, отбрасывается.

Область POMГруппа
compilepackages
provided, systemcompileOnly
runtimeruntimeOnly
testtestPackages

Чтобы выполнять цели Maven, используйте Native Maven.

Анализ кода зависимостей

В проекте с elide.pkl экспериментальный индекс кода зависимостей записывает типы, члены и ссылки из разрешённых JAR-файлов Maven. elide index resolve находит артефакт, в котором определён класс, а elide index references показывает, что использует класс из зависимости.

OpenRewrite использует этот индекс для запуска рецептов Java. Объявите дополнительные модули рецептов в dependencies.maven.devPackages и просмотрите изменения исходников с --dry-run.

Процессоры аннотаций

dependencies {
  maven {
    packages { "org.mapstruct:mapstruct:1.6.3" }
    processors { "org.mapstruct:mapstruct-processor:1.6.3" }
  }
}
  • Процессоры запускаются в elide build и elide javac для основного и тестового наборов исходников.
  • Изменение JAR-файла процессора вызывает перекомпиляцию.
  • Сгенерированные исходники попадают в .dev/jvm/generated-sources/<set>/java и компилируются вместе со своим набором.
  • Процессоры видят только исходники Java и никогда — объявления Kotlin. Kotlin компилируется до обработки Java, поэтому код на Kotlin, использующий сгенерированные типы, должен получать их из предшествующего набора исходников или проекта.
  • KAPT и KSP не поддерживаются.
  • -proc:none, -proc:only и -proc:full работают так же, как в javac.

elide javac --capabilities сообщает, что поддерживает данная сборка Elide:

{
  "version": 1,
  "javaAnnotationProcessing": true,
  "kotlinSymbolProcessing": false,
  "kotlinCompilerPlugins": false
}
ПолеНазначение
javaAnnotationProcessingПроцессоры аннотаций Java запускаются.
kotlinSymbolProcessingПроцессоры KSP запускаются.
kotlinCompilerPluginsСторонние плагины компилятора Kotlin запускаются во встроенном компиляторе. Это не касается встроенных плагинов и управляемого или собственного инструментария.

Задайте ELIDE_TRACE_PROCESSORS=1, чтобы выводить каждый класс процессора при загрузке (Loading processor dependency: demo.HelloProcessor).

Была ли эта страница полезной?