Оголосіть залежності в elide.pkl і встановіть їх командою elide install.
| Екосистема | Як увімкнути | Звідки читається |
|---|---|---|
| Maven | за замовчуванням | elide.pkl або проєкт pom.xml, вибраний через -p |
| npm | --ecosystems=npm | elide.pkl і package.json |
| PyPI | — | dependencies.pypi приймається; elide install його не встановлює |
Встановлення залежностей
elide install # Maven
elide install --ecosystems=npm # npm
elide install --ecosystems=maven,npm # both
elide install --workspace # every ecosystem the project declaresНаявність package.json не вмикає npm; перелічіть усі екосистеми, потрібні в CI. Невідома або недоступна екосистема —
це помилка використання.
Оголошення залежностей
amends "elide:project.pkl"
dependencies {
maven {
packages {
"com.google.guava:guava:33.4.8-jre"
}
}
npm {
packages { "react@19.0.0" }
devPackages { "typescript@5.6.2" }
}
pypi {
packages { "requests>=2" }
optionalPackages { ["dev"] { "pytest>=8" } }
}
}Для проєкту, де є лише pom.xml, виконайте elide install -p .; див. Залежності Maven.
Групи Maven
Запис — це group:artifact:version[:classifier], MavenPackageSpec, шлях до локального JAR або посилання
project("name"). Учасники робочого простору можуть не вказувати версію й брати її з кореня
(Робочі простори). Конфлікти розв’язуються за найближчою залежністю, як у Maven.
| Група | Застосовується до |
|---|---|
packages | Classpath компіляції та виконання продакшн-наборів. |
devPackages | Лише на етапі розробки. |
modules | --module-path для компіляції, запуску, тестів і нативних образів. |
compileOnly | Лише classpath компіляції. |
runtimeOnly | Лише classpath виконання. |
processors | Шлях процесорів анотацій; див. Залежності Maven. |
testPackages | Набори тестів, на додачу до залежностей їхнього продакшн-набору. |
kotlinPlugins | Плагіни компілятора Kotlin; див. Компілятор Kotlin. |
exclusions | Вилучаються з розв’язання та з усіх classpath. |
substitutions | Локальні файли, що замінюють координату в усіх classpath; див. довідник. |
Стартери Spring Boot:
dependencies {
spring {
version = "4.0.0"
starter { "web"; "actuator" }
testStarter { "test" }
}
}Кожна назва стає org.springframework.boot:spring-boot-starter-<name>:<version> у packages або testPackages.
Інші артефакти Spring (spring-boot-devtools, org.springframework:*) вказуються в maven; обидва списки
об’єднуються.
Репозиторії
dependencies {
maven {
repositories {
["company"] = "https://maven.example.com/releases"
["private"] {
url = "https://packages.example.com/maven"
credentials {
username = read("env:MAVEN_USER")
password = read("env:MAVEN_TOKEN")
}
}
}
localRepository = ".m2/repository"
}
}| Властивість | Призначення |
|---|---|
repositories[name].url | URL репозиторію. |
repositories[name]., .password | Базова автентифікація. |
repositories[name]., .ntlmWorkstation | Будь-яка з них вмикає NTLM. |
repositories[name].name, .description | Відображувана назва та опис. |
enableDefaultRepositories | Підключати Maven Central (за замовчуванням true). |
localRepository | Локальний репозиторій Maven, у який виконується розв’язання. |
- Незашифрований
http://до будь-якої адреси поза127.0.0.0/8завершується помилкоюMaven repository 'name' uses plain HTTP.elide build deps --allow-http-repositoriesдозволяє його. read("env:…")потребує--allow-env; див. Прапорці збирання.- З
enableDefaultRepositoriesартефакти Maven спершу завантажуються через проксіmaven.pkg.st, потім із Maven Central.elide build deps --use-pkgst=false(або--no-use-pkgst) використовує лише Maven Central; глобальні прапорці--pkgstі--no-pkgstна це не впливають.
Параметри Maven
| Параметр | Дія |
|---|---|
--slim | Не завантажувати вихідні файли та Javadoc. |
--with=sources | Додатково завантажити вихідні файли; також працюють javadoc і docs. Невідомі значення завершуються з кодом 2. |
--direct | Копіювати артефакти в проєкт замість створення посилань. |
--fresh | Знову завантажити всі залежності й оновити глобальний кеш. |
elide build deps виконує те саме розв’язання як завдання і також приймає --offline, --allow-http-repositories і
--use-pkgst.
Встановлені файли
| Шлях | Вміст |
|---|---|
. | Пакети npm; node_modules у корені проєкту посилається сюди. |
aube-lock.yaml | lock-файл npm. |
.dev/dependencies/m2 | Посилання в стандартний кеш Maven. |
. | Розв’язані classpath; див. elide classpath. |
У робочому просторі посилання містяться в .dev/dependencies/ кореня; файли classpath залишаються в кожного проєкту.
Спільного lock-файлу для всіх екосистем немає; див. Стан збирання.
Запити до коду залежностей
Експериментальний індекс коду залежностей записує типи, члени та посилання з розв’язаних
JAR Maven. Побудуйте його командою elide index build --layers=l1,l2,l3, а потім використовуйте resolve, щоб
дізнатися, який артефакт визначає клас, get, щоб переглянути тип або член, і references, щоб перейти за його
посиланнями в коді. used-by знаходить відповідні скомпільовані локальні вихідні файли.
OpenRewrite використовує той самий індекс для перетворень вихідного коду на Java. Додайте
модулі рецептів у devPackages: це інструменти розробки, окремі від залежностей застосунку.
Неявні бібліотеки JVM
- Корені лише на Java не отримують неявних бібліотек Kotlin, середовища виконання Metro та API анотацій Elide, навіть
із блоком
kotlin. - Корені на Kotlin отримують бібліотеки, які вмикають їхні
kotlin.features. - Корені на Kotlin також отримують середовище виконання atomicfu, якщо не задано
kotlin.features.atomicfu = false. - Набори тестів отримують вбудований JUnit, якщо не задано
jvm.features.testing = false; тоді для тестів JVMelide testпотрібен ваш власнийjunit-platform-console. dev.elide:elide-apiіelide-insightприймаютьlatestяк версію й розв’язуються у вбудований артефакт.
Повний список із версіями: API для JVM. Щоб використовувати анотації Elide з Java:
dependencies {
maven {
compileOnly { "dev.elide:elide-api:1.0.0" }
}
}Особливості npm: Встановлювач npm.