Объявите зависимости в 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.