Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dargmuesli/plm-jar-builder
Creates .jar files for university Kassel eecs/plm Java projects.
https://github.com/dargmuesli/plm-jar-builder
builder java module powershell project university
Last synced: 1 day ago
JSON representation
Creates .jar files for university Kassel eecs/plm Java projects.
- Host: GitHub
- URL: https://github.com/dargmuesli/plm-jar-builder
- Owner: dargmuesli
- License: gpl-3.0
- Created: 2017-10-24T20:33:37.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-05T01:23:34.000Z (about 4 years ago)
- Last Synced: 2024-10-17T18:58:33.821Z (19 days ago)
- Topics: builder, java, module, powershell, project, university
- Language: PowerShell
- Size: 218 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build status](https://ci.appveyor.com/api/projects/status/ba8i29gqp62lw4rp/branch/master?svg=true)](https://ci.appveyor.com/project/Dargmuesli/plm-jar-builder/branch/master)
# PLM-Jar-Builder
Erstellt .jar-Dateien für EECS/PLM Java-Projekte an der Universität Kassel.## Inhaltsverzeichnis
1. **[Disclaimer](#Disclaimer)**
2. **[Hintergrund](#Background)**
3. **[Installation](#Installation)**
4. **[Benutzung](#Usage)**
5. **[Funktion](#Functionality)**
6. **[Konfiguration](#Configuration)**
7. **[Hinweise](#Hints)**
8. **[Module](#Modules)**## Disclaimer
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.## Hintergrund
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.## Installation
Zu Installation müssen in einem PowerShell-Fenster die zwei folgenden Befehle ausgeführt werden:```PowerShell
Install-Module "PSDepend" -Scope "CurrentUser" -Force
Invoke-PSDepend -InputObject @{"dargmuesli/PLM-Jar-Builder" = "latest"} -Install -Force
```## Benutzung
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:```PowerShell
Invoke-PlmJarBuilder
```### Screenshot
![Screenshot](Resources/Screenshot.png "Screenshot")Alternativ können auch [einzelne Module](#Module) direkt angesprochen werden.
## Funktion
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.## Konfiguration
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:
### Custom
Einstellungen, die dem Benutzer die Eingabe von Funktionsparametern ersparen, aber die Programmfunktion nicht grundlegend ändern.- **ExerciseRootPath**
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`- **DownloadPath**
Der Pfad zum Ordner, in den .jar-Dateien heruntergeladen werden.
Standardwert: `%Downloads%` (Registry-Schlüssel)- **Exclude**
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"`- **NoNote**
Festlegen, ob eine Markdown-Notiz bezüglich dieses Moduls mit in die .jar-Datei gepackt werden soll.
Standardwert: `false`#### PLM
Daten, die im Browser-Authentifizierungsfenster angegeben werden müssen, bevor man die PLM-Seite überhaupt sieht.- **Username**
Der PLM-Benutzername.
Standardwert: `""`- **EncryptedPassword**
Eine [verschlüsselte Version](#verschlüsselte-passwörter) des PLM-Passworts.
Standardwert: `""`#### User
Daten, die zur Anmeldung direkt auf der PLM-Seite genutzt werden.- **MatriculationNumber**
Die Matrikelnummer, die als Benutzername für die PLM-Seite im Dateinamen der .jar-Datei vorkommen soll.
Standardwert: `""`- **EncryptedPassword**
Eine [verschlüsselte Version](#verschlüsselte-passwörter) des Benutzerpassworts.
Standardwert: `""`### Default
Einstellungen, die die Funktion des Moduls grundlegend ändern, weil sie Änderungen an der vorgegebenen Ordnerhierarchie darstellen.- **SolutionPath**
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"`- **ExerciseSheetRegex**
Der reguläre Ausdruck, nach dem Aufgabenordner und Übungsnummern gefunden werden.
Standardwert: `"^Aufgabenblatt (\\d{1,2})$"`- **JarFileRegex**
Der reguläre Ausdruck, nach dem .jar-Dateien, Matrikelnummern und Übungsnummern gefunden werden.
Standardwert: `"^(\\d+|.*)_(\\d{2}).jar$"`## Hinweise
### Verschlüsselte Passwörter
Der Wert für das verschlüsselte Passwort kann über folgendes Kommando erstellt werden:```PowerShell
'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.### Installation von Abhängigkeiten
Die Installation von Abhängigkeiten wird über das PowerShell-Modul [PSDepend](https://github.com/RamblingCookieMonster/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](https://github.com/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](https://github.com/RamblingCookieMonster/PSDepend/pull/46) der GitHub-Installationsmethode über PSDepend, aber diese wurde dem Projekt noch nicht offiziell hinzugefügt.
## Modules
- **Assistant**
- [Invoke-PlmJarBuilder](PLM-Jar-Builder/Docs/Invoke-PlmJarBuilder.md)
- **Config**
- [Get-PlmJarBuilderConfig](PLM-Jar-Builder/Docs/Get-PlmJarBuilderConfig.md)
- [Get-PlmJarBuilderConfigProperty](PLM-Jar-Builder/Docs/Get-PlmJarBuilderConfigProperty.md)
- [Get-PlmJarBuilderConfigPropertyPath](PLM-Jar-Builder/Docs/Get-PlmJarBuilderConfigPropertyPath.md)
- [Get-PlmJarBuilderVariable](PLM-Jar-Builder/Docs/Get-PlmJarBuilderVariable.md)
- [New-PlmJarConfig](PLM-Jar-Builder/Docs/New-PlmJarConfig.md)
- [Set-PlmJarBuilderConfigProperty](PLM-Jar-Builder/Docs/Set-PlmJarBuilderConfigProperty.md)
- [Set-PlmJarBuilderVariable](PLM-Jar-Builder/Docs/Set-PlmJarBuilderVariable.md)
- **JAR**
- [Find-MatriculationNumber](PLM-Jar-Builder/Docs/Find-MatriculationNumber.md)
- [Get-ExerciseFolder](PLM-Jar-Builder/Docs/Get-ExerciseFolder.md)
- [New-PlmJar](PLM-Jar-Builder/Docs/New-PlmJar.md)
- **PLM**
- [Get-PlmJar](PLM-Jar-Builder/Docs/Get-PlmJar.md)
- [Get-PlmUri](PLM-Jar-Builder/Docs/Get-PlmUri.md)
- [Initialize-PlmSession](PLM-Jar-Builder/Docs/Initialize-PlmSession.md)
- [Publish-PlmJar](PLM-Jar-Builder/Docs/Publish-PlmJar.md)
- [Test-PlmUploadAvailable](PLM-Jar-Builder/Docs/Test-PlmUploadAvailable.md)