java build/InterlisJvmBuild.java sdk-package erzeugt den modularen
Launcher unter target/jenesis-jvm/delivery/compiler/bin. Im entpackten
SDK liegt er unter cli/bin. Windows verwendet interlis-compiler.bat.
help dokumentiert die verfügbaren Befehle und ihre Optionen.
target/jenesis-jvm/delivery/compiler/bin/interlis-compiler check \
--root Survey --diagnostic-language de \
testdata/models/base24.ili testdata/models/survey24.ilicheck und compile prüfen die angeforderte Closure. Mit --root bleiben
zusätzliche lokale Dateien als mögliche Eingaben verfügbar. analyze
liefert den Analysestand und kann bei fachlichen Fehlern eine partielle
Sicht mit Diagnosen ausgeben. diagram verwendet --format json oder
--format mermaid. version --json unterscheidet Projekt-, API-, Protokoll-,
Diagnosekatalog-, Format- und Diagrammversion. Lokale Importdateien sind
explizit anzugeben. Der CLI-Host sucht keine Verzeichnisse nach Modellen ab.
Exitcodes sind 0 für den erfolgreichen Befehl, 1 für fachliche Ablehnung,
2 für Bedienfehler, 3 für interne oder operationale Fehler und 4 für Abbruch.
In format --check bezeichnet 1 auch einen Formatierungsbedarf.
--json schreibt bei den unterstützten Befehlen ein vollständiges
JSON-Ergebnis nach stdout. Textdiagnosen gehen nach stderr. Datenströme und
Dateien bleiben UTF-8 und frei von automatisch eingefügten ANSI-Sequenzen.
--diagnostic-language de|en wählt die Diagnoseprosa. Default ist Englisch.
--verbose ergänzt bei check, compile, analyze, diagram und
format sichere Quellausschnitte, verwandte Fundstellen und Hinweise. Bei
Repositoryläufen erscheinen Suche, Auswahl und Cachezugriffe unmittelbar in
der tatsächlichen Reihenfolge. Quellframes zeigen bis zu drei revisionstreue
Zeilen mit höchstens 160 sichtbaren Spalten. Bei unsicherer Unicodebreite
ersetzt ein UTF-16-Hinweis das Caret. Steuerzeichen werden druckbar escaped.
--color=auto|always|never oder --color MODE gilt für die fünf
Diagnosebefehle. AUTO färbt nur sicher interaktives stderr. Umleitung,
nichtleeres NO_COLOR und TERM=dumb deaktivieren AUTO. Unter Windows bleibt
AUTO konservativ farbfrei. ALWAYS und NEVER legen die Entscheidung explizit
fest. JSON, Format-/Diagramm-stdout und Ausgabedateien bleiben farbfrei.
check, compile, analyze und diagram verwenden die gleichen expliziten
Repositoryoptionen. --repository DIR_OR_URI ist wiederholbar. Jedes
Repository braucht einen ilimodels.xml-Index. Eine Repositorywurzel kann
mit --root ohne lokale Datei ausgewählt werden. Der Host verwendet keine
Defaultrepositories. Zur Auswahl und Reproduktion dienen --model-pin,
--source-pin, --read-lock und --write-lock. Weitere Optionen sind
--cache, --no-cache, --offline, --warnings allow|reject,
--config FILE und --explain-config.
--config liest explizite UTF-8-Java-Properties bis 1 MiB. Unbekannte
und doppelte Schlüssel sind Bedienfehler. CLI-Werte ersetzen den jeweiligen
Dateiwert. --explain-config gibt die wirksamen Werte und ihre Herkunft als
JSON aus und redigiert Zugangsdaten und Queries. Lokale Pfade beziehen sich
auf das Arbeitsverzeichnis. Die Repositoryregeln
beschreiben Indexauswahl, Cachefristen, Offlinebetrieb, Netzwerk und Locks.
Ein Lock dokumentiert die tatsächlich aufgelösten Quellen. check und
compile schreiben ihn nach erfolgreicher Kompilierung, diagram nach
erfolgreicher Projektion und analyze nach abgeschlossener Analyse
einschliesslich fachlicher Diagnosen. Ausgabekollisionen mit Eingabe- oder
Repositoryquellen werden geprüft.
format arbeitet auf lokalen Quellen und unterstützt keine
Repositoryoptionen. --check prüft Formatierungsbedarf, --write ersetzt
die gelesene Datei nach erneuter Inhaltsprüfung atomar. Der Formatter
verwendet den Solothurner Stil, Formatversion 2.0. Die Zielbreite
--max-line-width ist weich und liegt zwischen 40 und 240 Codepoints.
Standard sind 120. Der Formatvertrag beschreibt
werttragende Texte, Zeilenenden und Sicherheitsregeln.
Die Repositorybefehle unterstützen --connect-timeout SECONDS,
--read-timeout SECONDS, --request-timeout SECONDS|off,
--proxy HOST, --proxyPort PORT und --no-proxy. Die Defaults sind
15 Sekunden für Verbindungen, 40 Sekunden für Leseinaktivität und kein
Requestgesamtlimit. Die JVM liefert die Proxywahl, sofern kein Modus
explizit gesetzt ist. Ein manueller Proxy verwendet standardmässig Port 80.
Die Properties verwenden dieselben Namen ohne führende Bindestriche.
Die CLI überschreibt die Datei. Auf derselben Ebene schliesst aktives
no-proxy einen Proxyhost und Proxyport aus. CLI---no-proxy entfernt
Host und Port aus der Datei. CLI---proxy setzt einen expliziten Host und
übernimmt gegebenenfalls den Dateiport. Ein Port allein erfordert einen
wirksamen Host. --explain-config zeigt die abgeleitete Proxywahl
system, direct oder http und ihre Herkunft. Die Validierung erfolgt
vor Quellenzugriff und Netzbeschaffung.
Der Standardcache liegt unter ~/.interlis-cache. Eine abweichende
--cache-Ablage oder --no-cache gilt für diesen Prozess. Offline benutzt
ausschliesslich vorhandene verifizierte Inhalte. Ein fehlender erforderlicher
Cacheeintrag führt zu OFFLINE mit Quelle und Grund. Locks binden ihre
Bytes über den Digest und frieren ungepinnte lokale Projekttexte nicht ein.
Das Kommandoschema ist die gemeinsame Quelle für Parser und Hilfe. Es
prüft unbekannte oder doppelte Optionen, fehlende Werte und --. Die
geparsten Vorkommen sind geordnet und unveränderlich. Ein eingebetteter
Host übergibt Arbeitsverzeichnis, Home, Streams und Compiler-Dienste
explizit. Injizierte Streams bleiben beim Aufrufer. Der Host schliesst
seinen eigenen Lauf erst nach Ausgabe und Flush ab. Ein erfolgreicher
Compilerkindlauf kann deshalb zu einem operationalen Hostfehler führen.
Datei- und Lockziele werden vor dem Schreiben geprüft. Nach Auflösung prüft der Host zusätzlich Kollisionen gegen die tatsächlich geladene Closure. Der Ergebniswert listet fertiggestellte Artefakte in Reihenfolge mit Art, URI und Bytezahl, auch wenn ein späterer Schreib- oder Flushschritt scheitert. Eine vorhandene Gate-Ablehnung bleibt strukturiert im Ergebnis erhalten.