Gradle plugin for creating INTERLIS repositories
Der ModelRepositoryCreator-Task erstellt aus einem Verzeichnis (inkl. Unterverzeichnisses) mit INTERLIS-Modelldateien eine ilimodels.xml-Datei, welche die Grundlage für eine INTERLIS-Modellablage dient.
Der Inhalt wird aus den INTERLIS-Modellen direkt ermittelt. Dementsprechend können nur die Attributewerte in der ilimodels.xml-Datei gespeichert werden, deren Information auch im Modell steckt.
Die ilimodels.xml-Datei wird in den modelsDir-Ordner gespeichert. Die Pfadangaben der INTERLIS-Modelldateien in der ilimodels.xml-Datei sind relativ zu modelsDir.
task createIliModels(type: InterlisRepositoryCreator) {
modelsDir = file("models/")
dataFile = "ilimodels.xml"
}
Parameter | Beschreibung |
---|---|
modelsDir | File. Lokales Verzeichnis mit den INTERLIS-Modelldateien. |
dataFile | String. Name der ilimodels.xml-Datei. Wird im modelsDir-Verzeichnis gespeichert. Optional, default ilimodels.xml . |
repoModelName | String. Name des Repository-Modells. Zur Auswahl stehen IliRepository09 und IliRepository20 . Optional, default IliRepository20 . |
modelRepos | String. Modell-Respositories, die beim Kompilieren der INTERLIS-Modelldateien verwendet werden. Alle Ordner und Unterordner im modelsDir -Verzeichnis werden immer berücksichtigt. Weil diese Ordner vor den Standard-Repos verwendet werden, dauert es nun länger, weil immer z.B. Units gesucht wird. Um dies zu beschleunigen, kann man in einen models-ext-Ordner solche Basis-/Kern-Modelle kopieren. Optional, default http://models.interlis.ch/;http://models.kgk-cgc.ch/;http://models.geo.admin.ch |
technicalContact | String. URI für technischen Kontakt. Wird nur verwendet, falls das Modell kein gleichlautendes Metaattribut aufweist. Optional, default wird im Bedarfsfall mailto:[email protected] verwendet. |
ilismeta | Boolean. Bei true wird für jedes INTERLIS-Modell die dazugehörige IlisMeta07-Datei (XTF) erzeugt. |
Der ConfigDataRepositoryCreator-Task erstellt aus einem Verzeichnis (inkl. zwei Subverzeichnissen-Hierarchien) mit ini-Dateien eine ilidata.xml-Datei. Er prüft dabei nicht, ob die ini-Datei tatsächlich eine Config- oder Metaconfig-Datei für ilivalidator ist. Ebenso wenig wird die http://codes.interlis.ch/model
-Kategorie geschrieben (Modell, für das die Config gültig ist). Die Information fehlt dazu in den ini-Datein (Eventuell eine Sidecar-Datei oder separater Info-Block in den ini-Dateien machen).
task createConfigDataXml(type: ConfigDataRepositoryCreator) {
configDir = file('config')
dataFile = 'ilidata.xml'
owner = 'mailto:[email protected]'
}
Parameter | Beschreibung |
---|---|
configDir | File. Lokales Verzeichnis mit den ini-Datein (in den Unterverzeichnissen). |
dataFile | String. Name der ilidata.xml-Datei. Default ilidata.xml . |
owner | String. URI des Eigentümers. Default mailto:[email protected] |
Der UsabILItyHubCreator-Task erstellt aus einem Verzeichnis mit lokalen ilihub-Repositories (ilidata.xml-Datei und Subverzeichnissen mit QML, ini, yaml, etc.) eine gemeinsame ilidata.xml-Datei. Es werden die Verzeichnisse innerhalb des angegebenen Verzeichnisses durchsucht. Diese müssen eine ilidata.xml-Datei aufweisen. Weitere Subverzeichnisse werden nicht berücksichtigt. Die erstellte ilidata.xml-Datei wird mit ilivalidator geprüft. Es wurde ein zusätzlicher Constraint eingeführt: Die Verzeichnisse müssen mit einem Amtskürzel beginnen. Die veränderte Modelldatei ist Bestandteil dieses Code-Repos und muss ggf. nachgeführt werden.
task createIliDataXml(type: UsabILItyHubCreator) {
reposDir = file('ilihub')
dataFile = 'ilidata.xml'
}
Parameter | Beschreibung |
---|---|
reposDir | File. Lokales Verzeichnis mit den lokalen ilihub-Repos. |
dataFile | String. Name der ilidata.xml-Datei. Wird im reposDir-Verzeichnis gespeichert. Optional, default ilimodels.xml . |
Java 17 or later.
rm -rf .ilicache
: Es wird das Standardverzeichnis des ilicaches verwendetuser.home
. Aus diesem Grund kann es zu Konflikten kommen und das Verzeichnis muss vor dem Ausführen des Tasks gelöscht werden (händisch oder mit Gradle task).- Die Metaattribute
technicalContact
undfurtherInformation
werden aus dem INTERLIS-Modell ausgelesen und als Attribute in derilimodels.xml
-Datei verwendet. Weil diese vom TypINTERLIS.URI
sein müssen, kommt es momentan zu Fehler beim Validieren derilimodels.xml
-Datei (wegen einiger unserer Modelle). Im Plugin-Code werden minimale Korrekturen vorgenommen oder es wird ein Standardwert gesetzt. Die Metaattribute in den entsprechenden Modellen müssen zu einem späteren Zeitpunkt korrigiert werden (SOGIS only). - Beim Kompilieren der Modelle müssen allenfalls lokalen Verzeichnisse berücksichtigt werden, weil lokale Modelle wiederum lokale Modelle importieren. Dazu kann der Parameter
modelRepos
verwendet werden. - Gradle-Plugin-Upload: Es wird eine alte Version des Plugins verwendet. Mit Version 1.0 (o.ä) gibt es einen API-Break.