#65: MSI-Vorbereitung - jdeps-Modulliste, winUpgradeUuid, BAT-Dateien, Pfad-Hinweise
- addModules-Liste per jdeps aktualisiert: java.prefs und jdk.unsupported.desktop
neu hinzugefuegt; java.desktop, java.logging und java.xml manuell beibehalten
(reflektiv genutzt, von jdeps --ignore-missing-deps nicht erkannt)
- jdeps-Ausgabe in pdf-umbenenner-packaging/jdeps-output.txt dokumentiert
- winUpgradeUuid gesetzt (EA8D0149-1401-4D3D-A98D-A2B98DAE5495); darf nie geaendert werden
- BAT-Dateien korrigiert: referenzieren nun %~dp0PDF-KI-Renamer.exe (kein Unterverzeichnis),
passend zur appContent-Einbettung ins Installationsverzeichnis
- BAT-Dateien via appContent in den MSI-Installer eingebettet
- winShortcut=true und winShortcutPrompt=false bestaetigt (waren bereits korrekt)
- app.version=${revision} bestaetigt (war bereits korrekt nach #67)
- betrieb.md: MSI-Release-Checkliste und Pfad-Empfehlung fuer sqlite.file ergaenzt
- README-icon.md: Ist-Stand dokumentiert (icon.ico ca. 127 KB, kein Platzhalter)
- Offener Punkt fuer Marcus: Laufzeit-Verifikation ohne JDK nach manuellem MSI-Build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -550,6 +550,36 @@ Installationsverzeichnis ab. **Der Betreiber muss diese Beispieldatei manuell na
|
||||
Windows-SmartScreen-Warnung, die durch „Weitere Informationen → Trotzdem ausführen"
|
||||
bestätigt werden muss. Code-Signing ist für spätere Ausbaustufen vorgesehen.
|
||||
|
||||
**Empfehlung für Prompt- und Konfigurationspfade im MSI-Betrieb:**
|
||||
|
||||
Für den MSI-Betrieb (Startmenü, Task Scheduler) wird **empfohlen**,
|
||||
`prompt.template.file` und `sqlite.file` als **absolute Pfade** zu konfigurieren
|
||||
oder auf `%APPDATA%`- bzw. `%ProgramData%`-Verzeichnisse zu zeigen.
|
||||
Relative Pfade beziehen sich auf das Arbeitsverzeichnis, das je nach Startart variiert
|
||||
(siehe Abschnitt „Prompt-Konfiguration").
|
||||
|
||||
### MSI-Release-Checkliste
|
||||
|
||||
Die folgende Checkliste ist vor jeder MSI-Auslieferung manuell abzuarbeiten.
|
||||
|
||||
- [ ] Neuinstallation auf sauberer Windows-Umgebung ohne vorinstalliertes Java
|
||||
- [ ] Installation in Installationspfad **mit Leerzeichen** (z. B. `C:\Program Files\PDF KI Renamer\`)
|
||||
- [ ] Upgrade von installiertem Vorgänger-MSI (kein manuelles Deinstallieren)
|
||||
- [ ] GUI-Start über Startmenü-Eintrag
|
||||
- [ ] Headless-Start über `PDF-KI-Renamer.bat` im Windows Task Scheduler
|
||||
- [ ] Desktop-Shortcut vorhanden oder Einschränkung hier dokumentiert
|
||||
- [ ] App-Version `3.0.x` im Windows-Installer sichtbar („Programme und Features")
|
||||
- [ ] Deinstallation sauber – Konfiguration unter `C:\ProgramData\PDF KI Renamer\` bleibt erhalten
|
||||
- [ ] SmartScreen-Warnung erscheint und wird durch „Weitere Informationen → Trotzdem ausführen" bestätigt
|
||||
- [ ] BAT-Dateien funktionieren bei Installationspfad mit Leerzeichen
|
||||
- [ ] Anwendungsstart **ohne Entwicklungs-JDK** erfolgreich: GUI-Start, PDF laden und rendern, Verarbeitungslauf starten, Verlaufs-Tab öffnen (Verifikation der `addModules`-Liste)
|
||||
|
||||
> **Hinweis zur JDK-freien Laufzeit-Verifikation:** Nur ein erfolgreicher Test
|
||||
> auf einem System ohne installiertes JDK bestätigt die Vollständigkeit der
|
||||
> `addModules`-Liste in `pdf-umbenenner-packaging/pom.xml`. Die aktuelle Liste
|
||||
> wurde per `jdeps --print-module-deps --ignore-missing-deps` ermittelt;
|
||||
> vollständige Ausgabe in `pdf-umbenenner-packaging/jdeps-output.txt`.
|
||||
|
||||
### Build-Kommandos
|
||||
|
||||
**Vollständiger Reactor-Build** (alle Module, Tests, Packaging):
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# jdeps-Ausgabe fuer das Shade-JAR
|
||||
# Erstellt: 2026-04-30
|
||||
# Befehl:
|
||||
# jdeps --print-module-deps --ignore-missing-deps \
|
||||
# pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar
|
||||
#
|
||||
# Ausgabe (einzeilig, Trennzeichen Komma):
|
||||
java.base,java.compiler,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.sql,jdk.jfr,jdk.unsupported,jdk.unsupported.desktop
|
||||
#
|
||||
# Neu gegenueber vorheriger addModules-Liste:
|
||||
# java.prefs – hinzugefuegt (von jdeps erkannt)
|
||||
# jdk.unsupported.desktop – hinzugefuegt (von jdeps erkannt)
|
||||
#
|
||||
# Manuell beibehalten (nicht von jdeps --ignore-missing-deps gemeldet,
|
||||
# aber zur Laufzeit reflektiv erforderlich):
|
||||
# java.desktop – JavaFX-Grafiksubsystem (ohne explizite statische Abhaengigkeit)
|
||||
# java.logging – Log4j2-JUL-Bridge (reflektiver Zugriff zur Laufzeit)
|
||||
# java.xml – FXML/XML-Parsing (reflektiver Zugriff zur Laufzeit)
|
||||
#
|
||||
# HINWEIS: Die Laufzeit-Verifikation ohne Entwicklungs-JDK ist zwingend erforderlich
|
||||
# (GUI-Start, PDF laden und rendern, Verarbeitungslauf, Verlaufs-Tab oeffnen).
|
||||
# Nur ein erfolgreicher Test auf einem System ohne JDK bestaetigt die Vollstaendigkeit
|
||||
# der Modulliste. Anleitung: betrieb.md, Abschnitt "MSI-Release-Checkliste".
|
||||
@@ -67,10 +67,13 @@
|
||||
|
||||
<!--
|
||||
Erzeugt den nativen Windows-Installer (MSI) ueber jpackage.
|
||||
Die Modulliste wurde auf Basis von `jdeps` (print-module-deps) auf dem
|
||||
Shade-JAR ermittelt und um die zur Laufzeit reflektiv genutzten Module
|
||||
java.logging (Log4j2-Bridge) und java.xml (FXML/XML-Parsing) erweitert.
|
||||
Die Modulliste wurde per jdeps (print-module-deps, ignore-missing-deps)
|
||||
auf dem Shade-JAR ermittelt (Stand 2026-04-30, vollstaendige Ausgabe
|
||||
in pdf-umbenenner-packaging/jdeps-output.txt) und um die zur Laufzeit
|
||||
reflektiv genutzten Module java.desktop, java.logging und java.xml erweitert.
|
||||
WiX Toolset 3.x muss im PATH verfuegbar sein (nur auf der Entwicklungsmaschine).
|
||||
Nach dem MSI-Build muss die installierte Anwendung ohne Entwicklungs-JDK
|
||||
gestartet und verifiziert werden (GUI-Start, PDF rendern, Verlaufs-Tab).
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.panteleyev</groupId>
|
||||
@@ -93,14 +96,31 @@
|
||||
<destination>${project.build.directory}/dist</destination>
|
||||
<icon>${project.basedir}/src/main/packaging/icon.ico</icon>
|
||||
<!--
|
||||
Bindet die Beispiel-Konfiguration als zusaetzliche Datei in das
|
||||
Anwendungs-Image ein. Sie landet neben den ausgelieferten JAR-Artefakten
|
||||
im Installationsverzeichnis und muss vom Betreiber nach
|
||||
Bindet zusaetzliche Dateien in das Anwendungs-Image ein.
|
||||
Sie landen im Installationsverzeichnis neben der PDF-KI-Renamer.exe.
|
||||
Die Batch-Dateien referenzieren die EXE relativ zu ihrer eigenen
|
||||
Position (%~dp0PDF-KI-Renamer.exe, kein Unterverzeichnis).
|
||||
Die Beispiel-Konfiguration muss vom Betreiber nach
|
||||
C:\ProgramData\PDF KI Renamer\config\ kopiert und angepasst werden.
|
||||
-->
|
||||
<appContent>
|
||||
<appContent>src/main/packaging/application.example.properties</appContent>
|
||||
<appContent>src/main/packaging/PDF-KI-Renamer.bat</appContent>
|
||||
<appContent>src/main/packaging/PDF-KI-Renamer-GUI.bat</appContent>
|
||||
</appContent>
|
||||
<!--
|
||||
Modulliste ermittelt per jdeps (Stand 2026-04-30):
|
||||
java.base, java.compiler, java.management, java.naming,
|
||||
java.net.http, java.prefs, java.rmi, java.scripting, java.sql,
|
||||
jdk.jfr, jdk.unsupported, jdk.unsupported.desktop
|
||||
Vollstaendige Ausgabe: pdf-umbenenner-packaging/jdeps-output.txt
|
||||
Manuell ergaenzt (reflektiv genutzt, von jdeps nicht erkannt):
|
||||
java.desktop - JavaFX-Grafiksubsystem
|
||||
java.logging - Log4j2-JUL-Bridge
|
||||
java.xml - FXML/XML-Parsing
|
||||
Laufzeit-Verifikation ohne Entwicklungs-JDK erforderlich
|
||||
(Anleitung in betrieb.md, Abschnitt MSI-Release-Checkliste).
|
||||
-->
|
||||
<addModules>
|
||||
<module>java.base</module>
|
||||
<module>java.compiler</module>
|
||||
@@ -109,12 +129,14 @@
|
||||
<module>java.management</module>
|
||||
<module>java.naming</module>
|
||||
<module>java.net.http</module>
|
||||
<module>java.prefs</module>
|
||||
<module>java.rmi</module>
|
||||
<module>java.scripting</module>
|
||||
<module>java.sql</module>
|
||||
<module>java.xml</module>
|
||||
<module>jdk.jfr</module>
|
||||
<module>jdk.unsupported</module>
|
||||
<module>jdk.unsupported.desktop</module>
|
||||
</addModules>
|
||||
<javaOptions>
|
||||
<javaOption>-Xms64m</javaOption>
|
||||
@@ -126,6 +148,13 @@
|
||||
<winMenuGroup>PDF KI Renamer</winMenuGroup>
|
||||
<winDirChooser>true</winDirChooser>
|
||||
<winShortcutPrompt>false</winShortcutPrompt>
|
||||
<!--
|
||||
winUpgradeUuid: Stabiler GUID fuer MSI-Upgrade-Erkennung.
|
||||
Einmalig gesetzt - darf NIEMALS geaendert werden.
|
||||
Eine Aenderung wuerde verhindern, dass ein bestehendes MSI
|
||||
durch das neue MSI automatisch ersetzt wird (Upgrade-Pfad kaputt).
|
||||
-->
|
||||
<winUpgradeUuid>EA8D0149-1401-4D3D-A98D-A2B98DAE5495</winUpgradeUuid>
|
||||
<installDir>PDF KI Renamer</installDir>
|
||||
</configuration>
|
||||
</execution>
|
||||
@@ -133,8 +162,11 @@
|
||||
</plugin>
|
||||
|
||||
<!--
|
||||
Kopiert die beiden Start-Batch-Dateien direkt in das EXE-Ausgabeverzeichnis,
|
||||
damit sie gleichrangig neben dem erzeugten Anwendungsverzeichnis liegen.
|
||||
Kopiert die beiden Start-Batch-Dateien direkt in das MSI-Ausgabeverzeichnis,
|
||||
damit sie auch ausserhalb des MSI-Installers (z. B. fuer manuelle Tests oder
|
||||
portable Nutzung) gleichrangig neben dem erzeugten Installer liegen.
|
||||
Hinweis: Im installierten MSI landen die Batch-Dateien ueber appContent
|
||||
direkt im Installationsverzeichnis neben der EXE.
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
"%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" %*
|
||||
start "" "%~dp0PDF-KI-Renamer.exe" %*
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
"%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" --headless %*
|
||||
"%~dp0PDF-KI-Renamer.exe" --headless %*
|
||||
|
||||
@@ -1,8 +1,21 @@
|
||||
# Icon-Platzhalter
|
||||
# Anwendungsicon
|
||||
|
||||
Die Datei `icon.ico` in diesem Verzeichnis ist ein **Platzhalter** (1x1 Pixel, valides `.ico`-Format).
|
||||
|
||||
**Vor dem Release durch echtes Icon ersetzen.**
|
||||
Die Datei `icon.ico` in diesem Verzeichnis enthaelt das Anwendungsicon fuer den
|
||||
Windows-Installer und die installierte EXE.
|
||||
|
||||
Das Icon wird beim Ausfuehren von `mvn clean package -P release` durch das
|
||||
`jpackage`-Plugin in die erzeugte Windows-EXE eingebettet.
|
||||
|
||||
## Anforderungen an das Icon
|
||||
|
||||
- Format: `.ico`
|
||||
- Mindestgroesse: 256 x 256 Pixel
|
||||
- Empfohlen: mehrere eingebettete Groessen (16, 32, 48, 64, 128, 256 px),
|
||||
damit Windows in jeder Anzeigegroeße (Taskleiste, Explorer, Desktop-Shortcut)
|
||||
eine passende Variante verwenden kann.
|
||||
|
||||
## Hinweis zum aktuellen Stand
|
||||
|
||||
Die Datei `icon.ico` hat eine Groesse von ca. 127 KB und enthaelt ein vollstaendiges
|
||||
Anwendungsicon. Vor einem oeffentlichen Release sollte geprueft werden, ob das Icon
|
||||
den aktuellen Gestaltungsrichtlinien und der gewuenschten Branding-Erscheinung entspricht.
|
||||
|
||||
Reference in New Issue
Block a user