Entwicklung: Mac-DMG erstellen

Hi,

erst einmal möchte ich mich auch noch ganz herzlich für diese echt tolle Open Source Anwendung bedanken. Ein so großer Funktionsumfang und vor allem auch Code-seitig sauber aufgesetzt, das hat wirklich ein großes Lob verdient! Obwohl ich nicht aus der Java-Welt komme, habe ich mich sofort zurechtgefunden.

Um ein klein wenig beizutragen habe ich mich in den letzten Tagen intensiv mit dem Java-Code beschäftigt und bereits meine ersten PRs hier und hier erstellt.

Meine Frage an die restlichen PP-Entwickler ist jetzt folgende:
Ich vermute, dass die finalen Executables für Windows/Mac/Linux von Andreas erstellt werden, da ich hierzu keine Anleitung gefunden habe. Kann ich eine PP Mac-DMG in Eclipse auch irgendwie selbst erstellen?

Der Hintergrund ist der, dass ich bei mir lokal gerne schon alle Features, die ich entwickelt habe, nutzen würde ohne aber dabei jedes Mal PP aus Eclipse heraus starten zu müssen.
Gibt es dafür eine Möglichkeit? Wie macht ihr das?

Danke für Euer Feedback!

Viele Grüße

Ok, sorry, da war ich wohl etwas zu schnell :expressionless:
Nach mehrmaligem Lesen ist mir jetzt klar, dass für den Release-Build auch Maven zuständig ist. Ich habe das Ganze lokal ausgeführt wie in der Anleitung beschrieben und konnte die Mac-Anwendung erfolgreich erstellen.

Nur folgende 2 Tests werfen bei mir beim Ausführen über Maven einen Fehler (in Eclipse funktionieren sie):

Errors:
StringToCurrencyConverterTest.testValidBEFRAmount:124 » IllegalArgument Keine …
StringToCurrencyConverterTest.testValidBEFRAmountWithNBSP:132 » IllegalArgument

Hat jemand dazu evtl. eine Idee?

Eine vollständige Fehlermeldung inklusive Stacktrace wäre vermutlich hilfreich

Ja.

Du kannst die DMG mit folgenden Kommando bauen. Allerdings wird dann in einem Aufwasch die DMG signiert und bei Apple notarisiert. Ggf. schmeißt Du diese Schritte aus den Build Skript raus (oder machst eine PR um die Flags zu trennen a la “dmg.skip=false”)

mvn -Dapplesigner.skip=false -Ppackage-distro clean verify

Du musst dann zusätzlich das script installieren, dass die DMG an sich erstellt:

Da die Tests auf Github Actions funktionieren und die Fehlermeldung auf Deutsch ist (“Keine …”), vermute ich mal dass da eine Locale Abhängigkeit in den Test reingeschlichen hat. Die Testklasse testet Pattern für Beträge, die in manchen Sprachen “non breaking spaces” (NBSP) haben. Da das per Tastatur aber sehr schwer einzugeben ist, werden alternativ auch einfache Leerzeichen akzeptiert.

Versuch mal die Sprache zu ändern:

export LANG=en_US.UTF-8
1 Like

Perfekt, das DMG erstellen hat geklappt, vielen Dank!

Bzgl. dem Fehler mit den Tests: irgendwie wurde wohl ein falsches JAVA_HOME gezogen und dadurch nicht die richtige Java-Version verwendet, ich mache jetzt noch einmal explizit ein export JAVA_HOME=... vor dem Ausführen und dann klappt es :thinking:

Eine Idee noch zu den Github Actions:
Da die Applikation in den Actions bereits gebaut wird, würde es nicht Sinn machen die so erzeugten Binaries als Artefakte zur Verfügung zu stellen und die Actions bei jedem Push oder zumindest manuell zu triggern?
So könnte man zum einen relativ einfach eine Vorabversion von einzelnen Features anderen Testern/Interessierten zur Verfügung stellen und gleichzeitig hätte man auch immer dieselbe Build-Umgebung. Außerdem könnte man die Actions so auch in einem Repository-Fork laufen lassen.