Dit document bevat informatie die nodig is om aan de slag te gaan met verdere ontwikkeling van Klukkluk, en bevat instructies over het opzetten van de werkomgeving en informatie over libraries die gebruikt zijn om de applicatie te ontwikkelen.
Het klonen van de repository
De project-repository wordt door projectgroep ENIAC aangeleverd
Projectstructuur
tekst
module-info.java gebruiken
Klukkluk maakt gebruik van Java-modules. Deze worden gedefinieerd in het bestand module-info.java, waarin beschreven staat welke modules vereist zijn voor de werking van de applicatie, welke modules geopend worden, waarnaartoe deze worden geopend (indien toepasselijk) en welke modules geëxporteerd worden (en waarnaartoe indien van toepassing).
Voor versie 0.4 ziet het bestand er als volgt uit:
Bepaalde modules zijn verplicht naar de JavaFX module geëxporteerd te worden, zodat deze kunnen worden gebruikt met de JavaFX frontend, hierover later meer informatie.
Belangrijk, binnen de repository-klassen wordt gebruik gemaakt van Jakarta Persistence functies. Deze worden door IntelliJ rood aangegeven, IntelliJ wil deze immers van de jakarta.jakartaee.api module uitlezen. Deze functies worden al uitgelezen uit aanwezige modules. Het toevoegen van de jakarta.jakartaee.api module zorgt ervoor dat de applicatie niet zal builden.
JaVaFo
In het bestand zijn twee verschillende variaties van JaVaFo aanwezig. Welke van de twee van toepassing is hangt af van de manier waarop het project gepackaged wordt. Gedurende de ontwikkelingsperiode is gebruik gemaakt van online tooling om de codekwaliteit en stabiliteit van de builds te controleren, hiervoor moest JaVaFo in de system scope gedefinieerd worden, zodat de tooling deze via de Bitbucket repository kon inladen. Wanneer de applicatie via mvn package of mvn clean package wordt gepackaged dient gebruik te worden gemaakt van een local maven dependency.
Om de dependency lokaal te installeren dienen de instructies in de comments van module-info.java gevolgd te worden. Hierna kunnen de JaVaFo modules omgewisseld worden en kan in pom.xml de system scope en filepath uitgecomment worden. Voor een lokale maven dependency zijn deze immers niet van toepassing.
JavaFX
tekst