Ein Build-Flag ist ein Name mit optionalem Wert, den elide.pkl bei der Auswertung liest.
Flags übergeben
elide build run --args="Hello World 🌎" --flag=RELEASE --flag=VERSION=1.2.3
elide build run --args="Hello World 🌎" -fRELEASE -fVERSION=1.2.3--flag NAME und -f NAME funktionieren ebenfalls, an beliebiger Stelle. Argumente nach -- sind nie Flags.
--args gehört zum Task run; siehe Build-Tasks.
Jeder projektbezogene Befehl nimmt Flags an:
elide run -fRELEASE -fVERSION=1.2.3 -- "Hello World 🌎"
elide install --flag=RELEASE
elide format -fNO_KOTLIN
elide build -fRELEASE
elide test -fFAST
elide project export -fRELEASE # shows the evaluated result- Ein Flag ohne Wert (
-fRELEASE) lieferttruefürbool(...)und einen Fehler fürstring(...). - Der Wert ist alles nach dem ersten
=, unverändert:-fEXPR=a=bergibta=b. - Ein wiederholtes Flag behält jeden Wert; skalare Zugriffsmethoden lesen den letzten (Wiederholte Flags).
- Flags müssen nicht deklariert werden; ein unbekannter Name gilt als nicht vorhanden.
- Namen dürfen nicht leer sein und weder
,noch=enthalten.
Flags in elide.pkl lesen
amends "elide:project.pkl"
local isRelease = build.flags.bool("RELEASE")
name = if (isRelease) "demo-release" else "demo-debug"
version = build.flags.stringOr("VERSION", "0.0.0")| Zugriffsmethode | Rückgabe |
|---|---|
has(name) | Ob das Flag übergeben wurde, mit oder ohne Wert. |
count(name) | Anzahl der Übergaben; 0, wenn nicht vorhanden. |
string(name) | Der Wert; null, wenn nicht vorhanden; Fehler, wenn ohne Wert. |
stringOr(name, orElse) | Der Wert oder orElse, wenn nicht vorhanden. |
bool(name) | false, wenn nicht vorhanden, true, wenn ohne Wert; true/false, yes/no, on/off, 1/0 (Groß-/Kleinschreibung egal); sonst Fehler. |
int(name) | Der Wert als Int; null, wenn nicht vorhanden; Fehler, wenn keine Ganzzahl. |
strings(name) | Alle Werte in Reihenfolge; leer, wenn nicht vorhanden; Fehler bei einem Vorkommen ohne Wert. |
stringsOr(name, orElse) | Alle Werte oder orElse, wenn nicht vorhanden. |
ints(name) | Alle Werte als Int; leer, wenn nicht vorhanden; Fehler, wenn einer keine Ganzzahl ist. |
bools(name) | Alle Werte als Boolean; leer, wenn nicht vorhanden; ein Vorkommen ohne Wert ergibt true. |
raw | Mapping<String, String> der wirksamen Werte; ein Flag ohne Wert wird zu "". |
all | Mapping<String, List<String>> aller Werte. |
Verwenden Sie strings(...), um einen oder mehrere Werte anzunehmen. Typisierte Zugriffsmethoden schlagen bei
ungültiger Eingabe fehl:
–– Pkl Error ––
build flag `RELEASE` is not a boolean: `perhaps`Umgebungsvariablen
read("env:NAME") sieht nur PATH, HOME, USER, LANG, LC_*, TZ, CI, TERM, SHELL, OS, TMPDIR und
ELIDE_*; jede andere Variable gilt als nicht vorhanden. Verwenden Sie ein Build-Flag oder erlauben Sie weitere:
elide build --allow-env=GITHUB_SHA,JAVA_HOME
elide build --allow-env # every variableWiederholte Flags
elide build -fARG=one -fARG=two -fARG='three, and a half'local args = build.flags.strings("ARG") // List("one", "two", "three, and a half")
local first = build.flags.all["ARG"].first
local latest = build.flags.string("ARG") // "three, and a half" — scalars read the last valueWerte behalten Kommas, Leerzeichen, = und Unicode. Listen-Zugriffsmethoden prüfen jedes Element:
–– Pkl Error ––
build flag `N` is not an integer: `x1`Flags in verschachtelten Blöcken
Innerhalb eines verschachtelten Objektrumpfs wird ein einfaches build nicht aufgelöst. Binden Sie ein local auf
Modulebene oder verwenden Sie module.build.flags:
local wantsExtra = build.flags.bool("EXTRA")
dependencies {
maven {
packages {
"com.google.guava:guava:33.0.0-jre"
when (wantsExtra) {
"com.example:extra:1.0.0"
}
when (module.build.flags.bool("MORE")) {
"com.example:more:1.0.0"
}
}
}
}