Creates .jar files for university Kassel eecs/plm Java projects.
Erstellt .jar-Dateien für EECS/PLM Java-Projekte an der Universität Kassel.
Dieses PowersShell-Tool ist weder die Lösung einer Aufgabe selbst, noch soll es dem/der Studierenden das Erlernen des Umgangs mit der Konsole verhindern. Der Einsatz ist eigenverantwortlich.
Im Rahmen der Lehrveranstaltung “Einführung in die Programmierung” im Fachbereich 16 (Elektrotechnik/Informatik) der Universität Kassel müssen Übungen bearbeitet und abgegeben werden.
Die Bearbeitung umfasst das Anfertigen von Dokumenten und Java-Programmen, die nur als jar-Archiv zusammengefasst hochgeladen/abgegeben werden können.
Daraus entstand die Idee für einen Assistenten, der einem beim Erstellen, Hoch- und Herunterladen von .jar-Dateien hilft.
Zu Installation müssen in einem PowerShell-Fenster die zwei folgenden Befehle ausgeführt werden:
Install-Module "PSDepend" -Scope "CurrentUser" -Force
Invoke-PSDepend -InputObject @{"dargmuesli/PLM-Jar-Builder" = "latest"} -Install -Force
In erster Linie sollte der Assistent verwendet werden, der durch die möglichen Funktionen des Moduls führt.
Dazu in einem PowerShell-Fenster einfach folgenden Befehl eingeben:
Invoke-PlmJarBuilder

Alternativ können auch einzelne Module direkt angesprochen werden.
Es wird eine Ordnerstruktur ähnlich zur folgenden vorausgesetzt:
Übungen\
├── Aufgabenblatt 1\
│ ├── Lösung\
│ │ ├── Teilaufgabe\
│ │ │ ├── Teilaufgabe.class
│ │ │ ├── Teilaufgabe.java
| | | ⇣
│ │ ├── 123456789_01.jar
│ │ ├── Lösung 1.odt
│ │ ├── Lösung 1.pdf
│ │ ├── Teilaufgabe.odg
│ │ ├── Teilaufgabe.pdf
| | ⇣
│ ├── Aufgabenblatt 1.pdf
| ⇣
├── Aufgabenblatt 2\
⇣
Die .jar-Datei wird standardmäßig beim Generieren überschrieben.
Dabei werden gewisse Dateitypen (.odt, .class), sowie IDE-abhängige Ordner (.idea\) ignoriert.
Die Standardwerte, die bei der Ausführung vom PLM-Jar-Builder genutzt werden, können in einer Konfigurationsdatei angepasst werden.
Die Konfigurationsdatei befindet sich im Modul-Ordner, meist hier: %USERPROFILE%\Documents\WindowsPowerShell\Modules\plm-jar-builder\PLM-Jar-Builder\Config\PLM-Jar-Builder.json
Folgende Einstellungsmöglichkeiten gibt es:
Einstellungen, die dem Benutzer die Eingabe von Funktionsparametern ersparen, aber die Programmfunktion nicht grundlegend ändern.
undefinedExerciseRootPathundefined
Der Pfad zum Ordner, in dem sich die Aufgabenordner (Aufgabenblatt 1, …) befinden.
Standardwert: %MyDocuments%\Universität\Informatik\Semester 1\Einführung in die Programmierung\Übungen
undefinedDownloadPathundefined
Der Pfad zum Ordner, in den .jar-Dateien heruntergeladen werden.
Standardwert: %Downloads% (Registry-Schlüssel)
undefinedExcludeundefined
Dateiendungen als Regex, die nicht in die .jar-Datei gepackt werden sollen.
Standardwert: ".*\.class", ".*\.eml", ".*\.iml", ".*\.jar", ".*\.odt", ".*\.odg", ".*\.ods", ".*\.old", "[^\\]+\\\.idea\\.*", ".*\\In\.java", "[^\\]+\\out\\.*", ".*\\Out\.java"
undefinedNoNoteundefined
Festlegen, ob eine Markdown-Notiz bezüglich dieses Moduls mit in die .jar-Datei gepackt werden soll.
Standardwert: false
Daten, die im Browser-Authentifizierungsfenster angegeben werden müssen, bevor man die PLM-Seite überhaupt sieht.
undefinedUsernameundefined
Der PLM-Benutzername.
Standardwert: ""
undefinedEncryptedPasswordundefined
Eine verschlüsselte Version des PLM-Passworts.
Standardwert: ""
Daten, die zur Anmeldung direkt auf der PLM-Seite genutzt werden.
undefinedMatriculationNumberundefined
Die Matrikelnummer, die als Benutzername für die PLM-Seite im Dateinamen der .jar-Datei vorkommen soll.
Standardwert: ""
undefinedEncryptedPasswordundefined
Eine verschlüsselte Version des Benutzerpassworts.
Standardwert: ""
Einstellungen, die die Funktion des Moduls grundlegend ändern, weil sie Änderungen an der vorgegebenen Ordnerhierarchie darstellen.
undefinedSolutionPathundefined
Der Pfad zum Order innerhalb des Aufgabenordners, der die Lösung enthält.
Darin sollten alle Dateien sein, die in die .jar-Datei gepackt werden sollen.
Standardwert: "Lösung"
undefinedExerciseSheetRegexundefined
Der reguläre Ausdruck, nach dem Aufgabenordner und Übungsnummern gefunden werden.
Standardwert: "^Aufgabenblatt (\\d{1,2})$"
undefinedJarFileRegexundefined
Der reguläre Ausdruck, nach dem .jar-Dateien, Matrikelnummern und Übungsnummern gefunden werden.
Standardwert: "^(\\d+|.*)_(\\d{2}).jar$"
Der Wert für das verschlüsselte Passwort kann über folgendes Kommando erstellt werden:
'passwort' | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString
Dass Apostrophe das Passwort einschließen ist notwendig, um gewisse Sonderzeichen im Passwort zu ermöglichen.
Das Passwort kann nur vom selben Windows-Account wieder entschlüsselt werden, mit dem es verschlüsselt wurde.
Die Installation von Abhängigkeiten wird über das PowerShell-Modul PSDepend realisiert. Die dortige, aktuelle Implementierung der Abhängigkeitsauflösung von GitHub-Projekten nicht wirklich ausgefeilt ist, dauert es oft lange bis alle Abhängigkeiten installiert sind. Besonders bei der Ausführung des Assistenten (Invoke-PlmJarBuilder) stört dies, sodass die Option -SkipDependencyCheck eingerichtet wurde, die die Abhängigkeitsauflösung verhindert. Gleichzeitig wird aber auch die Suche nach Updates übersprungen.
Der PLM-Jar-Builder nutzt u.a. das Projekt Dargmuesli/PowerShell-Lib von GitHub, das mit der derzeitigen Implementierung bei jeder Ausführung des Assistenten neu heruntergeladen wird. Es gibt bereits einen neue Version der GitHub-Installationsmethode über PSDepend, aber diese wurde dem Projekt noch nicht offiziell hinzugefügt.
We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.