elide project export produit, à partir d’un projet elide.pkl, un modèle que lisent d’autres outils. --format=pom
écrit un pom.xml Maven, que construit elide mvn ou toute installation de Maven 3.9+.
Exporter
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 directoryPassez le format sous la forme --format=<value> ; la sortie va sur stdout.
| Format | Contenu |
|---|---|
json (par défaut) | Le manifeste après évaluation par Pkl |
pom | Un POM Maven : coordonnées, dépendances avec leurs portées, release du compilateur, racines de sources |
intellij | Modules par source set, racines de contenu et de sources, dépendances de bibliothèques, niveau du JDK |
Contenu du POM
elide.pkl | pom.xml |
|---|---|
name | <groupId>, <artifactId> et <name> (un membre d’espace de travail prend le nom de l’espace de travail comme <groupId>) |
version | <version> ; 0.0.0 si absent |
jvm.target, jvm.java.release | maven.compiler.release, .source, .target |
packages, modules | Portée compile |
compileOnly, devPackages, processors | provided |
runtimeOnly | runtime |
testPackages | test |
| Un chemin vers un JAR local | Portée system avec un chemin ${project.basedir} |
| Source sets | <sourceDirectory>, <testSourceDirectory> ; racines supplémentaires via build-helper-maven-plugin |
| Membres de l’espace de travail | <modules> à la racine, <parent> dans chaque membre |
Un projet frère dans Jar.from | Ses packages, modules et runtimeOnly, s’ils ne sont pas déjà listés |
Ne sont pas exportés : exclusions, substitutions et kotlinPlugins. Les dépôts déclarés dans le manifeste sont
exportés.
Construire le POM
| Exécuteur | Commande | Prérequis |
|---|---|---|
| Native Maven | elide mvn -- package | Rien d’autre |
| Maven 3.9+ standard | mvn package | JAVA_HOME pointant vers la distribution Elide, ou n’importe quel JDK |
Faites pointer JAVA_HOME vers le répertoire qui contient bin/elide ; ses bin/java et bin/javac exécutent
Maven, son compilateur et les JVM de test qu’il lance en fork, comme le ferait un JDK 25 :
export JAVA_HOME="$(dirname "$(dirname "$(readlink -f "$(command -v elide)")")")"
mvn packagePour compiler avec elide javac et elide kotlinc dans un POM existant, utilisez le
Plugin Maven.
Exemple
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 sLimites
- L’export est à sens unique : Elide ne relit jamais le fichier généré. Régénérez-le après avoir modifié
elide.pkl. namedevient les coordonnées. Un nom contenant des espaces ou d’autres caractères refusés par Maven demande de modifier à la main<groupId>et<artifactId>.- Seul
build-helper-maven-pluginest déclaré. Les sources Kotlin nécessitent l’ajout d’un compilateur Kotlin au build, comme celui d’Elide. - Les dépendances de test intégrées d’Elide ne sont pas ajoutées ; déclarez les frameworks de test dans
testPackages.