elide project export gibt ein elide.pkl-Projekt als Modell aus, das andere Werkzeuge lesen. --format=pom
schreibt eine Maven-pom.xml, die elide mvn oder jede Maven-Installation ab 3.9 baut.
Export
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Übergeben Sie das Format als --format=<value>; die Ausgabe geht nach stdout.
| Format | Inhalt |
|---|---|
json (Standard) | Das Manifest nach der Auswertung durch Pkl |
pom | Ein Maven-POM: Koordinaten, Abhängigkeiten mit Scopes, Compiler-Release, Quellverzeichnisse |
intellij | Module je Source-Set, Inhalts- und Quellverzeichnisse, Bibliotheksabhängigkeiten, JDK-Level |
Was das POM enthält
elide.pkl | pom.xml |
|---|---|
name | <groupId>, <artifactId> und <name> (ein Workspace-Mitglied erhält den Workspace-Namen als <groupId>) |
version | <version>; 0.0.0, wenn nicht gesetzt |
jvm.target, jvm.java.release | maven.compiler.release, .source, .target |
packages, modules | Scope compile |
compileOnly, devPackages, processors | provided |
runtimeOnly | runtime |
testPackages | test |
| Ein lokaler JAR-Pfad | Scope system mit einem Pfad unter ${project.basedir} |
| Source-Sets | <sourceDirectory>, <testSourceDirectory>; weitere Verzeichnisse über build-helper-maven-plugin |
| Workspace-Mitglieder | <modules> im Root-POM, <parent> in jedem Mitglied |
Ein Geschwisterprojekt in Jar.from | Seine packages, modules und runtimeOnly, sofern nicht bereits aufgeführt |
Nicht exportiert werden exclusions, substitutions und kotlinPlugins. Im Manifest deklarierte Repositorys werden
exportiert.
Das POM bauen
| Ausführung | Befehl | Benötigt |
|---|---|---|
| Native Maven | elide mvn -- package | Nichts weiter |
| Reguläres Maven 3.9+ | mvn package | JAVA_HOME auf die Elide-Distribution gesetzt, oder ein beliebiges JDK |
Lassen Sie JAVA_HOME auf das Verzeichnis zeigen, das bin/elide enthält; dessen bin/java und bin/javac führen
Maven, seinen Compiler und seine abgezweigten Test-JVMs so aus, wie es ein JDK 25 täte:
export JAVA_HOME="$(dirname "$(dirname "$(readlink -f "$(command -v elide)")")")"
mvn packageUm innerhalb eines bestehenden POM mit elide javac und elide kotlinc zu kompilieren, verwenden Sie das
Maven-Plugin.
Beispiel
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 sEinschränkungen
- Der Export ist einseitig: Elide liest die erzeugte Datei nie zurück. Erzeugen Sie sie nach Änderungen an
elide.pklneu. namewird zu den Koordinaten. Ein Name mit Leerzeichen oder anderen Zeichen, die Maven ablehnt, erfordert ein von Hand bearbeitetes<groupId>und<artifactId>.- Nur
build-helper-maven-pluginwird deklariert. Für Kotlin-Quellen muss dem Build ein Kotlin-Compiler hinzugefügt werden, etwa der von Elide. - Die eingebauten Testabhängigkeiten von Elide werden nicht hinzugefügt; deklarieren Sie Test-Frameworks in
testPackages.