elide project export подає проєкт elide.pkl як модель, яку читають інші інструменти. --format=pom записує
pom.xml для Maven, який збирає elide mvn або будь-яка інсталяція Maven 3.9+.
Експорт
elide project export --format=pom > pom.xml
elide project export --format=json # resolved manifest
elide project export --format=intellij # IntelliJ workspace model
elide project export -p app --format=pom # another project directoryПередавайте формат як --format=<value>; вивід іде в stdout.
| Формат | Вміст |
|---|---|
json (за замовчуванням) | Маніфест після обчислення Pkl |
pom | POM для Maven: координати, залежності з областями, цільовий випуск Java, корені вихідних файлів |
intellij | Модулі за наборами вихідних файлів, корені вмісту й вихідних файлів, залежності від бібліотек, рівень JDK |
Що містить POM
elide.pkl | pom.xml |
|---|---|
name | <groupId>, <artifactId> і <name> (учасник робочого простору отримує назву робочого простору як <groupId>) |
version | <version>; 0.0.0, якщо не задано |
jvm.target, jvm.java.release | maven.compiler.release, .source, .target |
packages, modules | Область compile |
compileOnly, devPackages, processors | provided |
runtimeOnly | runtime |
testPackages | test |
| Шлях до локального JAR | Область system зі шляхом від ${project.basedir} |
| Набори вихідних файлів | <sourceDirectory>, <testSourceDirectory>; додаткові корені через build-helper-maven-plugin |
| Учасники робочого простору | <modules> у корені, <parent> у кожному учаснику |
Сусідній артефакт з Jar.from | Його packages, modules і runtimeOnly, якщо їх ще не перелічено |
Не експортуються: exclusions, substitutions і kotlinPlugins. Репозиторії, оголошені в маніфесті, експортуються.
Збирання POM
| Засіб запуску | Команда | Що потрібно |
|---|---|---|
| Native Maven | elide mvn -- package | Нічого більше |
| Звичайний Maven 3.9+ | mvn package | JAVA_HOME, що вказує на дистрибутив Elide, або будь-який JDK |
Вкажіть у JAVA_HOME каталог, у якому лежить bin/elide; його bin/java і bin/javac запускають Maven, його
компілятор і тестові JVM, які він породжує, так само, як це робив би JDK 25:
export JAVA_HOME="$(dirname "$(dirname "$(readlink -f "$(command -v elide)")")")"
mvn packageЩоб компілювати через elide javac і elide kotlinc усередині наявного POM, використовуйте
Плагін Maven.
Приклад
amends "elide:project.pkl"
name = "hello"
version = "1.0.0"
dependencies {
maven {
packages { "com.google.guava:guava:33.4.8-jre" }
testPackages { "org.junit.jupiter:junit-jupiter:5.13.4" }
}
}
jvm {
main = "com.example.Hello"
target = 17
}elide project export --format=pom > pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hello</groupId>
<artifactId>hello</artifactId>
<version>1.0.0</version>
<name>hello</name>
<properties>
<maven.compiler.release>17</maven.compiler.release>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.8-jre</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.13.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
</build>
</project>elide mvn -- packageRunning com.example.HelloTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.275 s -- in com.example.HelloTest
Building jar: target/hello-1.0.0.jar
BUILD SUCCESS
Total time: 5.041 sОбмеження
- Експорт односторонній: Elide ніколи не читає згенерований файл назад. Генеруйте його заново після зміни
elide.pkl. nameстає координатами. Якщо в назві є пробіли чи інші символи, які Maven відхиляє,<groupId>і<artifactId>доведеться виправити вручну.- Оголошується лише
build-helper-maven-plugin. Для вихідних файлів на Kotlin до збирання треба додати компілятор Kotlin, наприклад компілятор Elide. - Вбудовані тестові залежності Elide не додаються; оголошуйте тестові фреймворки в
testPackages.