Elide intègre javac pour Java 25 ; aucun JDK séparé n’est nécessaire.
Compiler des fichiers source
elide javac -- -d out src/Hello.java
elide java -- -cp out HelloLes options de javac se placent après --. Sans -d, les fichiers de classe sont écrits à côté de leurs sources.
elide javac -- -help liste toutes les options de javac.
Options d’Elide
Les options d’Elide se placent avant -- :
| Option | Rôle |
|---|---|
--jar PATH | Empaqueter la sortie dans un JAR à PATH. |
--manifest FILE | Manifeste pour la sortie de --jar. |
--max-errors N | Erreurs affichées avant que les suivantes soient seulement comptées ; 0 les affiche toutes. Les avertissements sont dédupliqués et jamais limités. |
--report-used-deps PATH | Écrire les entrées du classpath référencées par la sortie (strict deps de Bazel). |
--capabilities | Afficher les capacités du compilateur en JSON. |
--persistent_worker | S’exécuter comme worker persistant Bazel, en singleplex ou multiplex. |
--classpath-cache | Worker uniquement : réutiliser l’état du classpath d’une compilation à l’autre. ELIDE_ le désactive. |
elide javac --jar target/app.jar -- src/Main.java src/Util.java
elide javac --jar target/app.jar --manifest src/MANIFEST.MF -- src/Main.javaConstruire des projets
elide build compile src/main/java et src/test/java, ou les source sets que déclare
elide.pkl. Pour ne compiler que main :
elide build compile-java-mainjvm {
target = 25
java {
release = 25
compiler {
mode = "embedded"
flags { "-Xlint:all" }
}
}
features {
graalvm = false
}
}| Propriété | Signification | Valeur par défaut |
|---|---|---|
jvm.target | Cible du bytecode ; le niveau --release quand java.release n’est pas défini. | "auto" (21) |
jvm.java.release | Niveau --release : compiler uniquement contre l’API de ce JDK. | "auto" |
jvm.java.source | Utiliser --source/--target au lieu de --release ; ignoré quand release est défini. | "auto" |
jvm.java.compiler.mode | "embedded" utilise le javac d’Elide ; "external" lance celui de jvm.javaHome. | "embedded" |
jvm.java.compiler.flags | Options javac supplémentaires ; --release, -source ou -target ici remplacent celles d’Elide. | aucune |
jvm. | Niveau --release pour ce seul source set. | "auto" (celui du projet) |
jvm. | Options javac pour ce source set, après compiler.flags. | aucune |
jvm.javaHome | Java home pour les compilations externes et les JVM lancées dans un processus séparé. | celui d’Elide |
jvm.debug | Compiler avec -g. | true |
jvm.features.graalvm | Placer org.graalvm.nativeimage, word et collections sur le classpath de compilation. | false |
jvm. | Placer les JAR sans descripteur de module sur le module path comme modules automatiques. | true |
Un source set qui nécessite d’autres réglages, par exemple un source set compilé uniquement contre java.base, les
indique sous sourceSets. Nommer un source set que le projet n’a pas fait échouer le build.
sources {
["desktopless"] { paths { "src/desktopless/java" } }
}
jvm {
java {
sourceSets {
["desktopless"] {
flags { "--limit-modules"; "java.base" }
}
}
}
}Chaque compilation écrit ses arguments dans javac.args, à côté de sa sortie. Processeurs d’annotations :
Dépendances Maven.
Workers persistants Bazel
elide javac --persistent_worker et elide kotlinc --persistent_worker gardent un compilateur actif d’une action
Bazel à l’autre. Règles, configuration et exemple complet : Bazel.
Exemples
Partez d’un modèle :
elide init --template java # Java app with a JUnit test