Перейти до вмісту

Залежності 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, відкидається.

Область 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).

Чи була ця сторінка корисною?