Ich habe eine Lösung im Hinterkopf, weiß aber nicht, wie dies nativ in install4j zu erreichen ist.Beibehalten eines Ordners und seines Inhalts während eines Installationsupdates
Ich habe einen Ordner mit einem Repository von Artefakten (ähnlich dem .m2-Repository-Ordnerschema von Maven), wo die Dateinamen während der Maven-Kompilierung eindeutig generiert werden (Zeitstempel).
z. ./install-dir/artifacts/app-core/jar/1.2-t20160419183129/app-core-1.2-t20160419183129.jar
Nach dem Ausführen eines Installationsprogramms mit "Update existing installation" aktiviert, wird install4j diese Dateien anhängen und die ältere zeitgestempelte Version dieses Artefakts beibehalten. Ich verstehe, dass dies kein Fehler ist und funktioniert wie beabsichtigt. So wird Endergebnis wie folgt aussehen:
./install-dir/artifacts/app-core/jar/1.2-t20160415154633/app-core-1.2-t20160415154633.jar
./install-dir/artifacts/app-core/jar/1.2-t20160419183129/app-core-1.2-t20160419183129.jar
Nichts in diesen Dateien geändert, aber der Zeitstempel, der während der Kompilierung generiert wurde. Also gibt es eine Methode, die ich innerhalb von install4j angehen kann, die überprüft, ob die oben erwähnte Komponente neuer ist als das Gegenstück des Installers. Es müsste den Zeitstempel ignorieren und nur die Versionsnummer und MD5-Prüfsumme berücksichtigen.
Momentan entferne ich den Ordner artifacts
komplett und ersetze ihn durch die Installer-Version. Aber das ist ein aggressiver Ansatz, von dem ich hoffentlich wegwandere.
Okay. Das ist was ich dachte. Danke Ingo. – user0000001